System and method for enhanced communications via small data rate communication systems

ABSTRACT

A system and method for interacting with an interactive communication system include processing a profile associated with an interactive communication system; generating a user interface based on the processing of the profile to solicit a user response correlating to a response required by the interactive communication system; receiving the user response via the user interface; updating the user interface using the profile based on the user response; and sending a signal to the interactive communication system based on one or more user responses.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/740,038, filed Jan. 11, 2013, which is a continuation of U.S. patentapplication Ser. No. 12/122,619, filed May 16, 2008, now U.S. Pat. No.8,374,636, which claims the benefit of priority of U.S. Provisional Pat.App. No. 60/938,969, filed May 18, 2007, entitled “System and Method ForCommunicating With Text Messaging Systems” and U.S. Provisional Pat.App. No. 60/938,965, filed May 18, 2007, entitled “System and Method forCommunicating with Interactive Service Systems” all of which are herebyincorporated by reference.

BACKGROUND

1. Field of the Invention

The present invention relates to communication with interactive servicesystems, such as service systems that use short message service (SMS),interactive voice response (IVR) systems, and websites or other datasystems.

2. Related Art

Many companies currently use interactive service systems, such as textmessaging systems and IVR systems for various tasks as a first line ofcustomer support and service. However, interacting with such systems canbe cumbersome and time consuming.

New methods and systems are desired to drive awareness and increasediscovery by users of such interactive systems available incommunication systems. There is also a need to simplify the creation oftext messages needed to access information and content and performvarious transactions. In addition, improved methods for displayingresults and confirmations provided in response to request andtransaction messages sent to text-messaging systems are desired.

SUMMARY

Certain embodiments as disclosed herein provide for a system and methodfor enhanced communications. One example described herein relates tocommunications using a short message service (SMS) available on mostdigital mobile phones facilitating short messages (also known as textmessages, messages, or texts) from and to mobile phones, other handhelddevices, and server systems. However, each reference to SMS is alsointended to apply to other communication protocols and systems such asdata channels and voice communications interacting with interactivevoice response systems.

In one aspect a method for interacting with an interactive communicationsystem includes processing a profile associated with an interactivecommunication system; generating a user interface based on theprocessing of the profile to solicit a user response correlating to aresponse required by the interactive communication system; receiving theuser response via the user interface; updating the user interface usingthe profile based on the user response; and sending a signal to theinteractive communication system based on one or more user responses.

Additionally, the can include determining from the profile whether theuser response requires the signal to be sent to the interactivecommunication system.

Further, the step of sending a communication can include causing thegeneration of a text message.

The step of processing a profile can further comprise executing aprofile processing application.

In another aspect, a system for interacting with an interactivecommunication system includes: a profile processing application whichprocesses a profile associated with an interactive communication system;a user interface module configured to at least: generate a userinterface based on the processing of the profile to solicit a userresponse correlating to a response required by the interactivecommunication system, receive the user response via the user interface,process the user response, and use an updated user interface to begenerated; and a sending module which sends a signal to the interactivecommunication system based on the user response.

In a further aspect, the profile processing application is configured todetermine from the profile whether the user response requires the signalto be sent to the interactive communication system. Additionally, thesending module can send a signal to an intermediate server which in turnsends a signal to the interactive communication system.

In a further aspect, a method for interacting with an interactivecommunication system includes: processing a profile associated with theinteractive communication system; generating a user interface based onthe processing of the profile to solicit a user response correlating toa response required by the interactive communication system; receiving auser response via the user interface; generating and transmitting acommunication to the interactive communication system based on the userresponse; receiving a communication from the interactive communicationsystem; and updating the user interface using the profile, based on thecommunication from the interactive communication system.

In further aspects, the method can includes determining from the profilewhether the user response requires the signal to be sent to theinteractive communication system and saving user entered information andmodifying the profile using the saved information.

A further aspect includes a method of communicating with a client devicehaving a profile processing application and a profile including:receiving a text message from the client device; accessing informationassociated with a user of the client device; transmitting a responsivemessage to the client device; and transmitting additional information tobe displayed at the client device based on at least the informationassociated with the user.

Other features and advantages of the present invention will become morereadily apparent to those of ordinary skill in the art after reviewingthe following detailed description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The details of the present invention, both as to its structure andoperation, may be gleaned in part by study of the accompanying drawings,in which like reference numerals refer to like parts, and in which:

FIG. 1 is a block diagram of a text messaging environment according toone embodiment of the invention;

FIG. 2 is a block diagram depicting an example operational flowaccording to an embodiment of the invention;

FIG. 3 is a functional block diagram of a text messaging applicationaccording to one embodiment of the invention;

FIG. 4 is a block diagram of a text messaging server according to oneembodiment of the invention.

DETAILED DESCRIPTION

Certain embodiments as disclosed herein provide for a system and methodfor enhanced communications. One example described herein relates tocommunications using a short message service (SMS) available on mostdigital mobile phones facilitating short messages (also known as textmessages, messages, or texts) from and to mobile phones, other handhelddevices, and server systems. However, each reference to SMS is alsointended to apply to other communication protocols and systems such asdata channels and voice communications interacting with interactivevoice response systems.

After reading this description, it will become apparent to one skilledin the art how to implement the invention in various alternativeembodiments and alternative applications. Although various embodimentsof the present invention are described herein, it is understood thatthese embodiments are presented by way of example only, and notlimitation. As such, this detailed description of various alternativeembodiments should not be construed to limit the scope or breadth of thepresent invention as set forth in the appended claims.

The following overview of the text-messaging environment is intended toprovide a general and high level understanding to the reader. Thisoverview is in no way intended to define the entire scope of or limitthe scope of the text-messaging environment.

While the present disclosure refers to the Short Message Services (SMS)physical information channels available in substantially all cellularsystems, other physical information channels also available in cellularsystems may be employed. For example, packet data services available inmany cellular systems are also enabled in a high percentage of themobile terminals operating within these systems. Accordingly, anincreasing number of users are subscribing to the associated packet dataservices which can also be used in embodiments described herein.

Those skilled in the art will recognize the applicability of theembodiments described herein and will be capable of readily migratingthe systems and methods described in this disclosure relative to an SMSinformation channel to other information channels (including packet datachannels and via instant messaging “IM”). Many improvements to thesystem and methods due to the higher data rates and potential for morefrequent connections between the clients, servers and systems will bereadily apparent.

Referring now to FIG. 1, a block diagram of a communication environment100 according to an embodiment of the invention is shown. Theenvironment 100 includes a text-messaging device 102 (also referred to aclient), and one or more text messaging servers 110, one or more textmessaging systems 112, a web service server 118, and a text messagingpeer 114. The text messaging device 102 includes an application 104(i.e., profile processing application) and one or more profiles 106,which is associated with the text messaging system 112. Though in theexamples discussed herein, the focus is on a single example profile, itis anticipated that most devices will include more than one profile 106.

In an embodiment, the application 104 and profile 106 are initiallyloaded on the text messaging website/server 110. A user may download theapplication 104 and any profiles 106 of interest from the server 110wirelessly, or via a personal computer (“PC”)

The profile creation module 108 allows a designer to enter and selectprofile description information. In one embodiment the designer can bethe user of device 102. However, the designer will also be other userswith access to the creation module 108 with such access being providedin a number of ways including via the internet. Included may beinformation describing menu structure, branding information and images,attributes, keywords, codes, short codes, sent message formats, receivedmessage formats, display information for received messages, user inputprompts, and value range information. In an embodiment, the profilecreation module 108 generates the profile in eXtensible Markup Language(“XML”).

The device 102 can exchange text messages directly with the text messagesystem 112, and/or a text message peer 114. Alternatively, thetext-messaging server 110 can stand in between the text message systemand the text message peer. In this embodiment the text message server110 receives text messages (intended finally for text-messaging systemsor text-messaging peers) from users, read and modify (e.g., monitors,adds to, removes from, changes, compresses, un-compresses, etc.) thetext messages and forward the resulting text messages on to thetext-messaging systems or text-messaging peers. The text-messagingserver may also receive text messages (intended finally for persons)from text-messaging systems or text-messaging peers, read and modify (asper above) such text messages, and forward the resulting the messages onto such persons.

Additionally, the text message server 110 can receive text messages fromthe device 102 which are intended or result in a response from anon-text message system. For example, the web service server 118 canprovide information or services via a web browser or other API 120. Thetext messaging server 110 can receive a text message from the device,reformat the message into a format compatible with the API 120 of theweb service server 118 and transmit that query to the web service server118, for example, via the internet. The server 110 can then receive theresponse from the web service server 118, reformat that response as atext message and transmit that text message back to the device 102. Inthis manner, device 102 can access services and information via server110 that are not otherwise available via text messaging.

Examples of a text-messaging device 102 include a cellular phone, anInternet protocol (“IP”) phone, a landline (e.g., cordless) phone, awireless fidelity (“WiFi”) phone, a voice over IP (“VoIP”) phone orother phone, and a wireless device or computer. The text-messagingdevice 102 includes an application 104 and a profile 106. Theapplication 104 can be a software application targeted initially toreside on the text-messaging device 102. The application 104 and theprofile 106 can provide, for example, greatly improved user interfaces(UIs) for those who wish to interface with a text-messaging system 112(e.g., an SMS system like Google SMS or other systems like the Internetor a computer database, etc.). In other embodiments, the text-messagingsystem 112 can be an interactive voice response (IVR) system or otherinteractive communication system and therefore, the text-messagingsystem 112 can be more generally referred to as an interactive responsesystem that can use various communication protocols and channels.

In “person to machine” (P2M) situations, the application 104 togetherwith the profile 106 (described below) creates a user interface (UI)which can include a graphical user interface (GUI) for accessing atext-messaging system 112 (e.g., an SMS based weather, stock, ring tonedownload or banking system). The entire set or a subset of optionssupported for the text-messaging system 112 are presented to the user ina simple and easy to navigate set of menus, user input prompts, andoutput screens providing requested user information, confirmations, anderror messages all described in the profile 106 associated with thetext-messaging system 112. The application 104 in combination with oneor more profiles 106 simplifies and enhances the user experience andthereby saves time and minimizes user entry errors. The systems andmethods described herein can leverage thousands of existing and futuretext-messaging systems while taking full advantage of existingtext-messaging device 102 features (e.g., cellular phone features, SMSsend/receive capabilities, audio, keypad, display, processor, memory,wireless connection, etc.).

The application 104 also provides a user interface (UI) allowing a userto efficiently communicate with another user (e.g., a text-messagingpeer 114), where the other user may or may not also have the application104 running on their text-messaging device 102. In such “person toperson” (P2P) or “peer to peer” communications, one or more users cantake advantage of several beneficial features provided by theapplication 104. When all parties sending and receiving text messagesare utilizing the application 104, all such users derive the greatestbenefits in the use of the application. The users may communicate witheach other using any of several P2P profiles 116, each of which mayoffer numerous features common to all profiles, and other featuresspecific to certain profiles.

With the high level of user adoption and interest in SMS text servicesin the US and elsewhere in the world, users may find many and variedways to leverage the profiles. Individual users and user groups,therefore, may create and customize profiles for purposes of creatingindividualized and customized P2P experiences to suit their interests.Such behavior may accelerate user adoption of the text-messagingenvironment.

Examples of capabilities, among others, which may be included into P2Pprofiles 118, are described below.

Received emoticons (e.g., “:)”) can be converted to graphicalrepresentation (e.g.,

). Codes may be sent and received within text messages allowing the userto select and control avatars. The avatars may be loaded as part of theP2P profiles. A user in a group of users communicating with the aid of aP2P profile 116 may have an avatar to represent each other user in thegroup. The user may also have an ability to control an avatarrepresenting the user when the user's avatar is viewed by the otherusers.

Text shortcut phrases (e.g., “r u there”) can be converted to full textversions (e.g., “are you there”).

Text messages may be sent conditionally, according to received textmessages based on either or both the phone number or short code of theoriginal sender, or on the message contents. A user can configure theapplication 104 and a profile 106 such that a desired text message or atext message containing certain information or data is sent in responseto a particular message received from another person or text-messagingsystem 112. For example, the user may configure a message including thetext “Hello Anne, I am in a meeting all day today, but will call youtonight.” to be sent in response to each message received from a userwith phone number 858-123-4567.

Compression (information source coding techniques known to those skilledin the art) at the sending user's application 104 and un-compression atthe receiving user's application 104 can more efficiently utilizeavailable messaging bandwidth. Such compression allows for the additionof advertisements and coupons at the text-messaging server 110 whilestill allowing the user's access to 160 characters of payload.

Menu trees relevant to user groups may be utilized in the generation oftext messages to be sent to one or more group members. For example, amenu tree can allow a member of a “Fantasy Football” league to select aset of teams from a predefined list of team names stored in the P2Pprofile 116. A menu tree can enable a member of a “Chess Club” to sendthe text corresponding to a chess move (e.g., K2K5) to an opponent inthe Chess Club. Members of social groups, clubs, affinity groups, etc.,can develop many and varied ways to leverage the application 104 andprofiles to improve communications between and among members of thegroup.

Creating and maintaining lists of group members and corresponding phonenumbers is simplified. Members can use such a P2P profile 116 toefficiently address text messages to one or more members of the group.Additional groups and sub-groups can also be created.

Entry shortcuts (described herein) corresponding to members of a group,including aliases, etc., can be created. Similarly, entry shortcuts forwords and phrases of interest to members of a group (e.g., a list ofproduct codes for use by a group of field sales representatives) can becreated.

UI menu trees providing for efficient generation of text forms ofinterest to the group can be utilized.

In an embodiment, a profile creation module 108 (described herein) canbe used to create a P2P profile 116 with any of the features describedabove, and others. The profile creation module 108 may be made availableon a website/server or elsewhere. Alternatively, a P2P profile 116 maybe created using information related to the application 104 (describedherein) without the use of a tool such as a profile creation module 108.

After the P2P profile 116 is created, the members of a user group maythen use the application 104 and the associated P2P profile 116 togetheras a primary client. The P2P profile 116 would be tailored to benefitthe user group. To facilitate communication between all users of theuser group, including those who do and those who do not have theapplication and associated profile, the application may appropriatelyand conditionally prepare the text messages to be sent and appropriatelyand conditionally process the text messages received. Additionally, theuser can use the P2P profile as their preferred messaging client whetherthey have created any groups. That allows for a generalized customizedand improved messaging or communication interface.

To facilitate such conditional processing, the application 104 andassociated P2P profile 116 on a first user's text-messaging device 102have information corresponding to an associated P2P profile (if any) onother user's text-messaging devices 102. For example, if a first userhas an application 104 and P2P profile 116 capable of performing sourcecode compression in the generation of messages to be sent and one of theintended receivers of the message does not have the requiredun-compression capability, then the application 104 sending the messagemay decide not to perform any compression. Alternatively, theapplication 104 may decide to send a compressed version of the messageto a text-messaging server 110, which then performs a compressionappropriate for intended recipients having an un-compression capability.

In some cases, messages sent from one member to another member of agroup using a P2P profile may be sent via the text-messaging server 110so that further processing may be performed at the server 110. Someexample processing steps are described below.

A text message is received from a sender at the server 110, information(e.g., advertisement information) is added to the text message, and thetext message with the added information is sent to the intendedreceiver.

A compressed text message is received from a sender at the server, thereceived compressed message is un-compressed, and the uncompressedmessage is sent to the intended receiver, which does not have acapability to un-compress a message. In such a case, the message may besent in multiple parts.

Additionally, a message can be sent from the user to the server 110. Theserver then sends the message to multiple other people. For example, thesender may provide along with the message, the name of a predefinedgroup to send the message on to. The server will in this case read thename of the group, look up the addresses of each member of the group,and send the message on to each member of the group. This saves time onthe part of the sender and eliminates the need for the sender to sendmultiple messages. Instead only one message will be sent from the clientto server, reducing potential tariffs. Other examples related tocompression (for purposes including minimizing the number of textmessages sent and received, to reduce potential tariffs for sending andreceiving) will be apparent to those skilled in the art.

The application 104 may save certain user inputs as “entry shortcuts,”and propagate appropriate values within the device 102 to variousprofiles (e.g., P2P profile 116 and profile 106) so that the user is notrequired to enter them again. Time is thus saved because the user neednot otherwise recall the information (e.g., zip code, city name, a bankaccount number or credit card number, etc.) from another location (e.g.,a credit card in the user's wallet, etc.).

Complete entry sequences may be saved as “sequence shortcuts.” A usermay later select a sequence shortcut from a first menu list. Theapplication 104 then automatically runs through the desired entrysequence for the user, prompting the user when certain variable entryinformation is required. Sequence shortcuts may initially be placed inan initial menu of the profile 106, or may be moved by the user to theinitial menu of the application 104, or to the screen/desktop of thetext messaging device 102.

The application 104 can automatically re-order each menu list byfrequency of use so that the user sees the most frequently used menuitems at the top of the list. This feature may be enabled or disabled bythe user at any time. The user may also revert to the original orderingfor any profile using the application. The application also allows theuser to rename menus and profiles, to hide them, to delete them and tounhide them.

Application

The application module 104 resides on the text-messaging device 102. Theapplication 104 is typically downloaded in the form of executablesoftware to the text-messaging device 102 from the text-messagingwebsite/server 110 or another website/server wirelessly or via a PC. Theapplication 104 interfaces with features and functions available on thetext-messaging device 102 through a device application programmerinterface (API). The API may be a BREW (binary runtime environment forwireless), JAVA, Linux, Microsoft Mobile, or other API and may usefeatures and functions available on the text messaging device 102 notavailable through such API(s). The application 104 reads and interpretsone or more profiles 106 selected by the user and provides a userinterface (UI) to the user in the form of a set of menus, user inputprompts, and displays of outputs of requested user information andconfirmations, in accordance with the profile 106. Typically, theapplication will present the user with the list of profiles available onthe text messaging device 102 when the user initially launches theapplication 104. The user then typically selects one profile from suchlist at which time application 104 reads and interprets such profile asdescribed above.

The application 104 does not generally contain information specific toany particular text-messaging system but may contain in certain specificsituations as required. The information specific to a particulartext-messaging system (or other communication system or protocol) istypically contained in a profile 106 developed in accordance withmessage formats required by the text-messaging system. The application104 in effect provides a second API (i.e. the “API”) on top of thedevice API described above, where the API supports profiles 106themselves as “applications.” Thus, functionally is partitioned into twodistinct components. In the first, the application 104 is dependent onthe specific device API (e.g., BREW) supported by the particulartext-messaging device 102. In the second, the profile 106 issubstantially independent of the API supported by the particulartext-messaging device 102, and is specific to and dependent on the APIprovided by the application and also on the associated text-messagingsystem. This partitioning can afford several important advantages. Forone, profiles may be used on any text messaging device 102 on whichapplication 104 resides. So one profile may be developed for aparticular text-messaging system and such profile will operate on manydifferent text messaging devices 102 which may use various device APIs(e.g. BREW, JAVA, Microsoft Mobile, or other API). Therefore theapplications which are enabled using the profiles may be developed forbroad deployment much more quickly and for much less cost than similarapplications which would need to be designed and “ported” to operate oneach individual device API. In addition, new profiles or modifiedversions of existing profiles may be developed over time and suchprofiles will inherently operate within any text messaging device 102for which application 104 is resident, with no additional development or“porting” required.

This partitioning enables a user to download a single application 104adapted to the API supported by the user's device 102. The user can thendownload multiple profiles 106, where the profiles 106 are independentof the device API. That is, the same profiles 106 may be downloaded byother users onto devices having different device APIs. This capabilityallows for the development of profiles 106 independent of current andfuture text-messaging device APIs.

This approach is very scaleable from the perspective of the providers ofa text-messaging systems, who desire text-messaging device clients tosupport their particular text-messaging systems. In an embodiment,without the text-messaging system as described herein, providers wouldneed to develop a specific client for each device API intended forsupport. In one embodiment, profiles 106 may contain image files (e.g.,.png files) dependent on the text-messaging device because of screensize and aspect ratio dependencies, etc. An application 104 may alsowrite information into the profile 106 in order to change or add to theinformation contained in the profile 106 (e.g., to rename a menu item,to add a shortcut or to maintain statistics, etc.).

The application 104 can communicate with the Text Messaging server 110.In one embodiment, portions of the text messages to and from the device102 and the server 110 that are not used for a text message (referred toas the “control channel”) can be used to provide additionalcommunication between the application and the server. Messages sent inthe control channel can include, for example, the following: User hasdeleted a profile; user is requesting a new profile; reporting userprofile usage statistics such as which profiles have been used and howoften; server-to-client new dynamic advertisement; client reports addisplays, ad clicks, and ad events; server-to-client remote disable ofapplication or sending of informational message to user; confirmationthat application has been disabled; instructing application to enable,disable, hide or unhide a profile; confirmation that a profile has beenenabled, disabled, hidden or unhidden; reporting certain user eventswhich are identified in the profile as being required to be reportedfrom the client to server, reporting user initiation of URL or phonecall during interactivity with a received SMS message; sending an “I amalive” message from application from watch dog function described below;and instructing the application to hide or disable a profile;instructing the application to modify a profile. These and additionalmessages may be sent in the control channel to and from the device 102and the server 110 as requirements and needs arise over time.

There can also be included one or more message queues for the controlchannel. For example control channel messages can be classified to besent immediately, including by a dedicated control channel text messageif no control channel is otherwise available. Other control channelmessages can be classified as high priority, medium priority or lowpriority and sent out according to that priority ranking as controlchannel capacity is available. Typically when a text message is sentbased on a user initiated action, the availability and capacity of thecontrol channel is evaluated and control channel messages which are insuch queues described above are sent to the extent the control channelhas available capacity to do so, in accordance with their priorityranking. Thus, the high, medium and low priority queues will be emptiedin respective order. The application may evaluate the elapsed time sincebeing queued for messages assigned various priority rankings and if suchmessages have been queued for more than a defined time period of timeassociated with such priority ranking, such messages may be sent out bya dedicated control channel text message. Various other algorithms andmethods may be used to effectively transmit control channel messages ofdifferent priorities over time as will be apparent to one skilled in theart.

The application 104 provides functionality for modifying profiles 106resident on a user's text-messaging device 102. The instructions forsuch profile modification may be provided via the control channel. Amenu item may be added to an exiting menu list in such a way. Forexample, a menu list containing the items “California”, “New York” and“Idaho” may be modified to also include the menu item “Nevada” accordingto such methods. The specific control information for the addition mayinclude among other data, information to identify the profile, the menulist within the profile, the menu item text and the data to be sent inthe text message corresponding to the selection of the added menu item.

The application 104 can maintain an application inbox of messagesreceived in connection with the profiles 106 resident on the device 102.This inbox can be separate from or a sub-set of the text message inboxfor the standard client of the device 102. For example, the operatingsystem of the device 102 can be configured to place all incomingmessages into the inbox based on a list of sender addresses or a part ofthe “to” address or based upon information in the message. Additionally,messages in the inbox can be associated with their related profile foractivation when an item in the inbox is accessed. For example, this canallow for incoming alert messages associated with a profile to beprocessed according to information in the profile. The application inboxmay also allow the user to sort such inbox message contents by the timeand date of arrival of such messages. When reading a particular messageassociated with a particular profile within the application inbox, theuser may be given the option to open or execute the associated profilewith a single menu option selection so as to facilitate ease use.Alternatively, accessing the message can automatically cause executionof the profile. The application inbox may provide header information foreach message when the user is in a message list view of the applicationinbox. Such header information may provide, among other information, theprofile name, query type (e.g. “Movies by zip”) and message arrival timeand date so that the user may conveniently view the application inboxcontents.

Additionally, profiles can also be used to forward a received in onecommunication protocol in another protocol. All messages received in aprotocol for which a profile is present can be trapped in the inbox. Forexample, the user may have several profiles for sending or forwardingmessages in various formats or protocols (e.g. Twitter, Facebook, andAIM). The user may have received a message on AIM (IM message). The useris looking at the message in the Inbox. The user wishes to send themessage to another person, but this person does not have an AIMaccount/screen name. Instead the user has a Facebook account. So theuser reads the message from AIM and does a forward from the Inbox. Inthe forward command, the user id given the option to forward via severaloptions (SMS/text, Facebook, AIM, Twitter). Basically each profilecorresponding to one of the options et which offer messaging will behave an associated option for the use for forward operations. The usermay decide to forward the AIM message in the Inbox to the friend usingFacebook messaging. When creating a new message in the Inbox, the useris also given options as to how to send the message (e.g. Via AIM,Twitter, Facebook, SMS/text, etc.). The profiles themselves are not useddirectly in the forward and new message options above. Instead, for eachprofile that the user has downloaded, the “messaging” option for thatprofile in effectively “plugged in” to the Inbox to allow messaging fromthe Inbox. This makes for a very convenient centralized messaging place(the Inbox) from which the user may access any of the messaging optionsavailable to the user (based on the profiles the user has loaded intothe application).

The application 104 and profiles can be made available to the user forspecific time periods, for example, for providing subscription licensearrangements and additional access control over the application 104 andprofiles for other purposes. This can include attaching, to theapplication and/or profiles, data corresponding to the download date anddata corresponding to a period during which the application or profileis to remain valid. The application 104 is capable of monitoring suchinformation and the current date to cause a particular profile 106 toexpire or to cause the application 104 itself to expire. Further, theapplication can disable a profile in response to a control channel ortext message, e.g., from the server 110 and can disable itself.

Additionally, once a profile is loaded, the user may receive anotification via a text message or in the control channel (e.g., fromthe server 110) indicating that a new version of the profile isavailable. The user may then select a URL link in the text message whichtakes the user to a WAP site or website which prompts the user todownload the profile. Alternately, the application may receive the textmessage indicating that a new version of the profile is available andthe application may automatically go to the URL by opening a webbrowser. The application may then initiate the download of the profileautomatically. Note that all of the above also applies when the receivedtext message notification is not for a new version of an existingprofile, but instead for an entirely new profile for the user. In such acase the user may have already agreed to receive such profile whenavailable.

Advertisements may be placed by the application at appropriate screenswithin the menu tree or UI. Two types of advertisements are provided,those chosen by the application (static) and those chosen in real timeby the text messaging server 110 (dynamic). Dynamic ads can also bechosen and provided by the text messaging system 112 in the same manneras the server 110. Based upon specific placement categories, the staticadvertisements are chosen by the application from a small on-linedatabase of ads downloaded at the same time as the application orincluded in the application or in the profile.

Advertisements may be placed by the application at appropriate screenswithin the menu tree or UI. Two types of advertisements are provided,those chosen by the application (static) and those chosen in real timeby the text messaging server 110 (dynamic). Dynamic ads can also bechosen and provided by the text messaging system 112 in the same manner.Based upon specific placement categories, the static advertisements arechosen by the application from a on-line database of ads downloaded atthe same time as the application or included in the application andupdated from time to time either in part or in entirety through variousmeans including when the user downloads a new or updated profile,downloaded automatically by the application 104 or downloaded throughthe control channel when available. The application and/or profiles maycontain sets of images relating to advertisers (e.g. advertiser'slogos). The advertiser images stored on the device will typically bethose associated with the advertisers whose ads are placed mostfrequently within the application and profiles. These images may beloaded with the initial application load or when profiles are loaded ormay arrive in the control channel. When a dynamic or static ad is placedby the application, the advertiser image (if available) may be placedadjacent to the ad text by the application. If not available, then thead text will be placed without an advertiser image. Each advertiserimages may be stored along with a unique index number. The dynamic andstatic ads may also contain such advertiser image index number, so thatadvertisements and advertiser images may be correctly associated andpaired for display.

In contrast, dynamic ads are selected in real-time by the text messagingserver 110 when the client device sends a request to the text messagingserver or when a alert or other asynchronous text message is sent fromthe server to the client or as a dedicated server to client controlchannel message. The selected dynamic ad can be sent to the device 102on the control channel. Dynamic ad selection can be very specificallytargeted based upon the client request and/or other criteria. The othercriteria can include information from a user's profile (e.g., sex,residence address) usage history, time of day, etc. For example, an adfor a theatre can be provided when the user sends a movie times query;an ad for a real estate agent can be provided when the user sends aquery requesting information on a home at a particular address; an adfor a sporting event can be provided when the user sends a relatedsports scores query. The advertisement databases that the text messagingserver can choose from may or may not be contained within the textmessaging server, but may, instead or in addition, reside on one of moreseparate server. Such selected advertisement may then be included withinthe response to the query (in the control channel) and sent back to theuser where such advertisement may then be placed within or adjacent tothe response to the query received by such user. Each profile 106 cancontain information as to categories (e.g., a profile for accessingmovie listings may be designated as being in the “Entertainment”category) of ads to be placed within such profile menu system or UI.Advertisements may also contain information as to categories forplacement (e.g., an advertisement may be designated for placement in the“Airline” category and the “Entertainment” category). Advertisements mayalso contain information as to specific profiles for placement (e.g., anadvertisement may be designated for placement in the “Pizza Hut” profileand the “Google” profile). Advertisements may also contain informationas to specific categories or profiles for non-placement (e.g., anadvertisement may be designated not to be placed in the “Pappa John's”profile and not to be placed in the “Sports” category). Various otheralgorithms and methods may be used to effectively select ads forplacement as will be apparent to one skilled in the art.

In one embodiment dynamic ads are sent in the control channel and cancontain the following information:

ad text: (e.g. “Half off 4 tires at 4 Day Tire Store”)ad ID: This is used to uniquely track the ad from creation throughdisplay, click and actioning in the phone. The ad ID is passed back tothe server when these events take place so that the server knows whichads were displayed, clicked and actioned. This information is maintainedon the server for analytics and billing purposes. The display, click andactioning counts are also used to stop the sending of dynamic ads whenthe maximum allowable counts (if applicable) are reached.mode: This is the display mode of the ad text, e.g., scrolling orstationary.actionable options mask: Refers to actions resident in theapplication/phone; e.g. Call Advertiser, Goto website, Get Coupon,Download Now, etc. Any number of these is possible. Having the mask(i.e. referencing the options rather than sending them) allows for morecompact ads. If the desired action is not available the ad can contain“custom actions”. The custom text (e.g. Get Event Details or Enter CokeDrawing) is sent in the control channel with the ad.

Static ads can be stored on the device 102 (e.g., in profiles or otherfiles associated with the application as described above. Each stored adcan contain the following information:

All of the above information defined for dynamic ads plus the followingwhich can be used by the application to determine ad placement:start date and expiration datemaximum number of times to place the ad. Can also control the maximumnumber of times to allow the ad to be clicked and/or actioned.list of profile names in which the ad can be placed and/or list ofprofile categories in which the ad can be placed.

Once a static or dynamic ad is displayed, clicked or actioned within theapplication, a control channel message may be sent from the client tothe server 110 to indicate this event. The advertiser may choose foreach such ad click or action (including any or all of the selectedactions or customer actions), to have a specific response message sentto the client 102. (An actionable item is an item that a user canselect, for example by clicking.) For example, the response to theaction “Get Coupon” may be to send a message with a coupon “code” anddetails for redemption. Also, the response to the action “Enter CokeDrawing” may be to send the message “You have been entered to Win a oneyear supply of Coke”. Any number of other ad responses is possible andmay be created by the advertiser. The ad response may also contain alink to a website for purposes of downloading a ring tone, mobile phoneapplication, or other downloadable file. An ad response may also containa coupon code, or a UPC or other code which may be rendered into agraphical image representation by the application so as to allow theapplication to display such UPC or other code in the form of a couponwhich is then human or machine readable and which may be scanned forredemption. Such coupon codes may in some cases be returned in a controlchannel portion of the ad response which is not intended to be viewed bythe user, but instead rendered as described above into a graphicalcoupon image for redemption.

The application includes a watch dog timer feature which periodicallysends a message, for example, a text message or control channel message,to inform the server 110 that the application 104 is still loaded andactive on the device 102. There are several reasons that it is importantto be able to detect the application is still resident on the device. Ifthe user has deleted the application from the device, the server 110does not want to continue to send information alerts to the user. Inaddition, the server does not want to expose the control channel formatto the user which may occur if the application is not resident on thephone and the phone receives text messages containing the controlchannel and when there is no application 104 to intercept such messages.If the user has deleted the application from their mobile, controlchannel messages sent to the device could be captured in the device'sstandard SMS client therefore exposing the control channel message tothe user. Similarly, if the user has switched to a phone that has anolder version of the application installed, the server does not want tosend control channel messages that may not be supported by the olderversion. In order to detect the two situations described above, thewatch dog feature of the application sends at least one SMS message tothe server in each of recurrence of a defined time period. As a result,if no queries are sent to the server from the device within such definedtime period, the application will send a special “I'm alive” message tothe server. In addition, the “I'm alive” message will contain theversion of the application in order to detect if the user has switchedphones to a phone with a different version of the application or hasinstalled another version of the application. If no communications arereceived from a device at the server in each recurrence of such definedtime period, it is assumed that the application is no longer installedor temporarily disabled by the user (e.g. by the user turning the phoneoff) and the server will immediately stop sending messages to suchdevice. Should the server once again begin receiving communications fromsuch device, it is assumed that the application has been re-enabled bythe user and the server will immediately begin allowing the sending ofmessages to such device, including sending some or all of the messageswhich were not sent during the period in which the device was consideredto be disabled by the user or uninstalled.

The application 104 may send the text-messaging device 102 user'scurrent location in a message query in the control channel (via, forexample, latitude/longitude, ZIP code, City Code, Airport Code, or otherlocation identification means) either automatically or under usercontrol when such location information is available and may enhance thequery or response information. In an embodiment, the user's currentlocation (e.g., ZIP code) may be presented to the user within certaindisplays, sometimes as an entry shortcut, for the user to select as oneof several options when creating a query. The user may select suchcurrent location, may select another location available as an entryshortcut or may enter yet another location in an entry box madeavailable to the user.

The application 104 can monitor and track types of events andactivities. These events can be monitored on the client, recorded andthen sent back to the server 110, for example, via the control channel.Some are single events and some are an accumulation of events over atime period. Some may be sent immediately while others may be sent at alater time, using the available control channel queues. These events andactivities are as follows:

1) Profile usage. For example, how many queries the user sends from eachprofile. This usage is accumulated over a collection period (e.g. 1 dayor 1 week, etc.) which is programmable per profile. When the time periodexpires, the sum of queries sent from the particular profile is putalong with other information (date stamp, profile name or ID, etc.) intoa control channel message and put into a queue for sending to theserver. The next collection period begins at the end of the priorcollection period. Changes in this method are possible, includingmonitoring the usage of specific queries or groups of queries within aprofile. For example if a profile offers weather, news and stock quotes,the application can monitor the usage of each query type and send all 3separate query sums to the server after each collection period expires.In another example, the application can also monitor the number of queryresponses and/or the number of unsolicited messages (e.g. Weatheralerts) received during the collection period. Such profile usageaccounting is needed when monetization is a function of the number ofusers or active users using for a particular profile. The aboveinformation is also valuable for analytics purposes.

2) Advertisement events. The application can monitor when ads (staticand dynamic) are displayed to the user and when they are clicked. Theapplication provides for a landing page which provides a list of one ormore actions available to the user once the ad is clicked. Any suchaction taken is also monitored. Some ad actions listed are programmedinto the application and selected for use using information providedalong with the ad. For example the actions may include (Call Advertiser,Go to Advertiser website, Have advertised call me, Opt-in to SMS,Download Now, Enter to Win, Request Coupon, etc.). Some ad actions maybe provided along with the ad (e.g. “Call Crest”). These are called“Custom Actions”. The application records ad display events, ad clickevents and ad action events. When recording ad actions, the specificaction taken is also recorded (e.g. “Request Coupon”). These events areall put along with other information (date stamp, time stamp, profilename or ID, ad ID, ad action details, etc.) into a control channelmessage and put into a queue for sending to the server. The CallAdvertiser action, in addition to being recorded, causes a call to beplaced to a number which is provided along with the ad. The “Go toAdvertiser website” action, in addition to being recorded, causes a URLaddress which is provided along with the ad to be accessed by invoking abrowser. Ad display accounting is needed for advertising whenmonetization is a function of the number of impressions made. Ad clickaccounting is needed for advertising when monetization is a function ofthe number of ads which are clicked on. Ad action accounting is neededfor advertising when monetization is a function of the number and typeof actions taken. All such above information is also valuable foranalytics purposes.

3) Call and URL events. The application monitors when phone numbers andURLs are clicked. Such phone numbers and URLs are made actionable(clickable) by the application when they appear in certain displays (inparticular in the Display Action) as well as in the inbox among otherplaces. The recording of such events may be controlled on a profile byprofile basis, with such events recorded in some profiles and notrecorded in other profiles. These events are all put along with otherinformation (date stamp, time stamp, profile name or ID, ad ID, eventdetails, etc.) into a control channel message and put into a queue forsending to the server. Call and URL event accounting is needed whenmonetization is a function of calls placed or URLs visited. The aboveinformation is also valuable for analytics purposes.

4) General events. The application provides the ability for a profile toindicate that the application is to monitor specific user actions, whichmay not fall into any of the above categories. This is done by insertinga Control Channel Action element within the profile menu system. Thiselement is not visible to the user, but when the user takes certainactions, the Control Channel Action will be executed and certaininformation defined by the profile will be sent along with certain otherinformation (e.g. date stamp, time stamp and profile name or ID) to theserver using the control channel. The profile defined portion willtypically be a string of information, used to indicate the action orevent. For example, in the case of a profile which is used to place anorder or perform a transaction, the profile may have a Control ChannelAction immediately following the order or transaction confirming step inthe process. This confirming action may be the sending of a confirmingtext message to the server or to a third party server. To the user thisconfirming step may be performed by selecting the option “Confirm Order”or “Confirm Transaction”. In this way any number of actions or eventsmay be recorded and passed to the server based on user activityconcerning the profile of interest. This general accounting feature maybe used when monetization is a function of the number and type oftransactions or purchases made using a particular profile. This generalaccounting feature may be used for many other purposes. The aboveinformation is also valuable for analytics purposes.

The following summarizes some of the functions of the application.

-   -   1) Text messages may be formatted and sent.    -   2) Menu items may be renamed or deleted by the user.    -   3) Menu items may be hidden and unhidden by the user.    -   4) Entry shortcuts may be deleted or modified.    -   5) Entry shortcuts may have a nickname added to them by the        user. For example the zip code entry shortcut “92037” may have        the nickname La Jolla added to it. In such case the result may        be displayed to the user as “La Jolla: 92037”.    -   6) Entry shortcuts may have expiration information associated        with them. For example, the entry shortcut information obtained        by propagating a set of movie names from certain received        messages which have arrived in response to a query for movie        times information, may be assigned the expiration information        “perishable” in which case such information will be deleted by        the application on or after midnight of the day it was received.    -   7) User entry information may be saved (as an “entry shortcut”)        for the user for later use. In an embodiment, entry shortcuts        show up in the entry menu in which the corresponding user entry        information was entered.    -   8) Sequences of menu item selections and user entry information        may be saved, named, and provided to the user at a later time so        that the user may repeat all or some of the previously performed        sequence by making a single menu selection (and if necessary, by        entering information required to complete the sequence).    -   9) The above-described sequences may be scheduled by the user to        be performed at a later time or times, including sending on a        recurring basis (e.g. daily at 10:30 am).    -   10) The above-described sequences may be referenced as “sequence        shortcuts” which are then placed in the program launch display        of the text-messaging device 102.    -   11) The menu items in any or all menu item lists may be        reordered automatically according to frequency of use so that        the most frequently used menu item shows up as the first item in        the menu list for the user. Such reordering may be stopped        and/or removed (reverting to original order) by the user.    -   12) The menu items in any or all menu item lists may be        reordered automatically according to most recently used so that        the most recently used menu items shows up as the first items in        the menu list for the user. Such reordering may be stopped        and/or removed (reverting to original order) by the user.    -   13) Certain menu items may be restricted from reordering so as        to remain as the first item or in any desired location within        the menu list.    -   14) Entry shortcut information may be propagated from one entry        menu to other entry menus in the same profile 106 and to entry        menus in other profiles when such entry shortcut information is        of the same information type as indicated by the profile.    -   15) Received text message information may be propagated to other        entry menus in the same profile and to entry menus in other        profiles.    -   16) User entry information may be tested for validity.    -   17) Multiple associated received text messages may be properly        reordered if received out of order.    -   18) Multiple associated received messages may be concatenated        into a single message to be displayed for the user.    -   19) Received messages may cause an “alert” pop-up to the user        (e.g. “Message from Google has arrived”) with options (e.g.        “Dismiss” and “Read”) so that the user may read such messages        and be notified of their arrival.    -   20) Received messages may be reformatted for improved        readability for the user (including the addition, removal and        modification of information)    -   21) Messages may be compressed before being sent and may be        un-compressed upon being received.    -   22) Received message information may be incorporated into the        menu tree or UI to be displayed to the user after such message        is received.    -   23) User input information may be subsequently incorporated into        the menu tree or UI to be displayed to the user (e.g. after        entering the zip code 92037, the user requesting weather        information may see the display “Retrieving weather for 92037”).    -   24) Placing dynamic and static advertisements at appropriate        screens within the menu tree or UI.    -   25) Moving menu items from one menu to a prior or subsequent        menu in order to simplify future menu navigation (e.g., moving        the Sports menu item under the menu arrived at by selecting the        Entertainment item to the same menu as the Entertainment item.        In this example, Sports is advanced by one menu tree level and        made more readily available with fewer clicks required by the        user.

Profiles

Each profile 106 contains detailed information to describe a particulartext-messaging system (e.g., the Google SMS system). This includesdetailed menu tree and menu item information, details of user inputrequirements, and information as to the format of text messages to besent and the format of any text message received from the text-messagingsystem. The profile 106 also contains the short code(s) of thetext-messaging system.

A single profile 106 may not necessarily be used to communicate withonly a single text-messaging system. Profiles may be created whichinterface to several text-messaging systems and/or to communicate withother types of systems using other communication channels and protocols.For example a profile 106 could be created which would access weatherinformation from one text-messaging system and access stock quoteinformation from another and video (via a data service) from another.The user may under some circumstances be made aware of the two separatetext-messaging systems, or under other circumstances not be made awarethat information is retrieved from two separate text-messaging systems.In a second example, a user can request a street address from onetext-messaging system and then request driving directions to or from thestreet address from a second text-messaging system using the sameprofile 106. From the user's perspective, both operations are thereforeconducted within the same user interface. A user accessing severaltext-messaging systems with several profiles thus benefits from the useof UIs that are substantially similar in look and feel. This similarityenhances the user's ability to access such systems effectively becauseit is required only to learn to use only one basic UI, even though theuser is accessing several (perhaps dozens) of text-messaging systems andservices.

Referring to the second example above, the user experience can befurther enhanced if the street address is automatically provided to theuser within the UI for accessing the driving directions without the userhaving to “copy and paste” the information from a received text messageinto a second text message which would be sent to request the drivingdirections.

Furthermore, when two such text-messaging systems involved in the abovesecond example use different formatting information for a streetaddress, for example, the application 104 with the profile 106 isconfigured to reformat the street address between the steps ofretrieving the street address from the received text message andproviding it to for use in the second query. This is a component of afeature which is generally referred to herein as “propagation.”Additional components of the “propagation” features are described below.

The feature described in the example above in which information from areceived text message is automatically available for use in composinganother text message to be sent as part of another information requestis not limited to situations in which the requests are performed using asingle profile 106. Information and values entered by a user as well asinformation and values received by a user when accessing a profile 106(associated with one or more text-messaging systems) may be madeavailable within the same profile and may also be made available withinother profiles which use the same type of data.

Information and values, both entered by a user and received by the user,may be defined to be of a specific “type” and be so described in theprofile 106. The information and values of the “type” may then be madeavailable to the user from the same or other profiles when the user isprompted to enter a value which is of the same such “type.” For example,a user enters when prompted a value of “type” Credit Card Number in aparticular profile 106 (e.g., for a banking service), where the profile106 is configured such that this value is to be propagated to otherprofiles (i.e., by setting the appropriate attribute). If the user loadsa second profile (e.g., a profile for SMS based ticket purchase) at alater time and the second profile prompts the user to enter a creditcard value, then the credit card number entered by the user whenaccessing the first profile shows up for the user to select and enter.In the example above, the Credit Card Number information entered by theuser will be propagated as described to other profile(s) and will alsobe made available to the user (as an “entry shortcut”) within the entryscreen in which the user was originally prompted for the value.

Information entered by a user according to a UI prompt when using aprofile 106 may be made available immediately to the user when the useris still accessing the same profile. For example, with respect to abanking service profile, if a user enters an account suffix number toperform a savings to checking account transfer, the account suffixnumber may be made available when the user selects an option to retrieveaccount balance information within the profile. As described above, thetext-messaging system allows a user to enter a value at one step withina particular profile and then to have the value available to the user atfuture times when the value is required within the same or differentprofiles. In this way a user entering values when using a first profilemay not need to enter the values again, even when they are required toperform many further transactions using several profiles. In order todistinguish those values which should be saved as entry shortcuts in theentry screen in which they are entered from those values which areconsidered variable and should not be saved as entry shortcuts, theprofile may contain information to distinguish each such value as fixed(in which case and entry shortcut will be created) and variable (inwhich an entry shortcut will not be created). While an account numberonce entered will likely be needed again and would therefore beconsidered fixed, a dollar amount for a savings to checking transfer maynot be needed again and may therefore be considered variable. In orderthat information entered by the user and saved as an entry shortcut maybe obscured for security purposes, the profile may contain informationas to how such entry should be obscured when later displayed as an entryshortcut. In one example, this is accomplished by using the “*” symbolto hide certain digits of a Credit Card Number so that the resultingentry shortcut would be displayed as (e.g. “************7632”).

The profiles provided to the user may be configured before download toinclude certain sequence shortcuts and entry shortcuts which may bedeemed of interest to that specific user or to the majority of users orwhich may be requested by such user to be set up beforehand. Forexample, in a banking service profile, a sequence shortcut “CheckingBalance” can be provided since it would seem that the checking balanceinformation is a frequently selected information request for such aprofile. Secondly, in the banking service profile, an entry shortcut “MyAccount: 123456789” (where “123456789” represents the user's actualaccount number) can be provided since it saves the user the time andpotential for errors in entering the user's specific account number(s)later. Such information may be added to an existing generic version ofsuch profile, once such profile is requested by a user and after suchcustomization information is determined based on user account,registration and other information.

Entry shortcut and sequence shortcut information may be defined andentered into the profile 106 during the creation of the profile 106using the profile creation module 108 or otherwise during the creationof the profile 106. Such information may be deemed of interest to theuser therefore included in the profile at creation. The entry shortcutand sequence shortcut information may also be defined and entered intothe profile 106 based on instructions provided by the user after profilecreation and before the user downloads the profile 106 to the user'stext-messaging device 102 (e.g., when the user selects the profile fordownload using the text-messaging website/server 110). The purpose ofsuch user customization is desired in part in order to simplify thecustomization process by taking advantage of a website or other userinterface which may be more convenient place for the entering of suchinformation relative to doing so using the text messaging device 102.

The profile can contain information as to where, within the UI, to alertthe user when responses or confirmations, etc. to queries ortransactions, etc. arrive for the user. The profile 106 can containinformation as to where, within the UI, dynamic and staticadvertisements or coupons are to be placed. The profile 106 may alsoinclude information as to the categories of queries and transactions,etc. to be accessed through the profile 106. The information may be usedto decide which of available advertisements and coupons to place in theUI. For example, when accessing movie information, a Theateradvertisement of coupon may be placed. Note that advertisements may beplaced within UI elements of application 104 which are not explicitlypart of a particular profile UI. For example, advertisements may beplaced in the display in which the inbox message list view is providedor in the display in which individual inbox messages are viewed. Inaddition, advertisements may be placed in the display in which theprofile list view is provided. There are numerous other displays withinthe application, which are not explicitly part of a particular profileUI in which advertisements may be placed.

Various file formats and data structures can be used to describe the UIand associated profile 106 which provides a user with access to theservices provided by a particular text-messaging system, to generate themessage formats required by the system and support and additionalfeatures described herein. In one embodiment, the profiles contain a setof attributes to describe the UI as a menu tree, and to describe thesend and receive message formats, etc. The attributes may be generallygrouped as profile level attributes, menu level attributes, menu itemattributes, entry action attributes, display action attributes, etc.Within each such group, the attributes related to an associated part ofthe menu tree are listed. There are numerous methods for describing theUIs and associated profiles, which will be apparent to one skilled inthe art.

Text-Messaging Server

While many text-messaging systems and services are available to users,users are not generally able to readily discover such systems andservices because they are typically only described on websites providedby the text-messaging system 112 and service providers themselves. Atext-messaging server 110 can simplify the discovery process for theuser by aggregating many text-messaging systems and services, which canthen be made available for discovery by the user on a single website. Asnoted above, the website can be the text messaging server 110, or it canbe based on one or more other servers.

The user's discovery process is further enhanced by collectinginformation from the user regarding the user's demographic information,interests, mobile usage patterns, etc., for example, via the controlchannel as was described above. Basic demographic information (e.g.,sex, interests, etc.) can be collected when the user registers with theserver 110. The usage patterns and which profiles are used and how ofteneach profile is used are collected as described below. From suchinformation, the most appropriate text-messaging systems and servicesmay be selected from the set of all such systems and services andsuggested in various ways to the user. In one example, all availableprofiles may be offered to the user, organized by profile category inone view and organized by profile name in another view. Profiles mayalso be offered and listed in accordance with business rules withcompanies offering text messaging systems, where such rules considerpromotion and premium placement, competitive considerations and thelike.

A feature provided on the server 110 is a version of the profilecreation module 108 (described in greater detail below). This versionmay be made accessible to text-messaging system 112 and serviceproviders so that such providers may readily create profiles associatedwith their text-messaging systems. This feature facilitates a quick andefficient aggregation of a provider's content and allows for rapidgeneration of the associated profiles. This model is highly scaleablefrom the perspective of text-messaging services and content aggregation.

A related feature provided on the server 110 is another version of theprofile creation module, which may be made accessible to users of theapplication 104. User may readily create profiles for use in peer topeer applications or for use with text-messaging systems for which theuser desires further customization or for which no profile 106 is yetavailable. The user may begin with an existing profile 106, or create aprofile 106 from scratch. This feature further facilitates rapid useradoption. This model is highly scaleable in terms of end-usercustomization and has clear potential for adoption by affinity groups,social groups, clubs, organizations and other groups and for socialnetworking purposes. As such, this feature offers great potential forthe “viral” adoption of the application.

Profile Creation Module

The profile creation module 108 may be run on a PC, a text messagingserver 110, a text messaging system 112, and/or a web server, etc. Theprofile creation module 108 allows a profile designer, developer,text-messaging service or content provider, or end-user to create aprofile 106 associated with a particular text-messaging system 112 orfor peer-to-peer communication. Creation of a profile 106 is performedthrough a UI provided by the profile creation module 108, the UIincluding a set of forms, prompts, and entry fields used to receive theinformation to describe a particular text-messaging system 112. In anembodiment, the information includes send and receive message formatinformation, text-messaging system short code(s), user entry prompts,information and constraints for error checking, and informationpertaining to the desired UI, generally in the form of a menu tree.

The profile information, typically in the form of attributes, can bestored in XML or another file format. There can be one or more profilesfor each supported text-messaging system 112 or set of systems. In anembodiment, profiles can be created through examination of the textmessage format and other information provided for users of thetext-messaging system 112.

Depending on business or technical considerations, the text-messagingserver 110 can include an intermediary server, which may be used toaccess certain text-messaging systems so that messages sent to and fromparticular text-messaging systems may be monitored and/or modified.Monitoring and modification can be performed, for example, for purposesof user and/or customer billing and audit records creation, call volumeand statistics collection, profile version checking and control, userregistration verification, error detection and correction, advertisementand coupon downloading, information downloading, and profile list andcatalog updates.

Compression of information sent from the text-messaging server 110 to auser may be employed so that additional data bandwidth within suchmessages is made available for the insertion of advertisements andcoupons and other information.

In an embodiment, the application 104 may append a version number of aprofile 106 to a text message it sends. The text-messaging server 110can compare this to the version number of the receiving text-messagingsystem 112 to determine if the profile 106 is out of date with respectto the receiving text-messaging system 112. If the profile 106 is out ofdate, the user may be prompted to update the profile 106 prior tosending a message to the receiving text-messaging system 112. Forexample, the user may receive an indication that the user's profile 106is out of date with a request that the user download an updated profile.The user may be given the option to immediately request the updatedprofile, or to do so at a later time. The profile version checking mayalso be incorporated into the text-messaging system 110 itself withoutthe need for version checking to be performed by an intermediarytext-messaging server. The server 110 may also perform variousauthorization tasks. For example, a user may be authorized to accessonly certain text messaging systems and not others. In such a case,should a user attempt to access a text messaging system for which theuser has not been authorized or is not longer authorized, then theserver 110 may send a response to such user indicating the lack ofauthorization and may also provide information as to how to gainauthorized access to such text messaging system. In a similar way, thetext messaging server 110 may restrict access on a user by user basis.For example, a request from a phone number, which is not registered withthe system 100, may be declined access to all text messaging systemswhich are accessed through text messaging server 110. In addition anapplication disable command may be sent to phone numbers for which arenot registered with the system 100.

Other features may be implemented with the use of the text-messagingserver 110. The text-messaging server 110 may be used to limit access tocertain text-messaging systems by particular users under predeterminedconditions (e.g., such text-messaging systems may be available to usersonly on a subscription basis or under some other access control). Thetext-messaging server 110 may also be used to store statistics relatedto the text-messaging transactions requested and performed. In anembodiment, the text-messaging server 110 may be used to store sensitiveand/or confidential user information (e.g., a user's credit card numberand expiration date, account numbers and passwords) so that the user isnot required to send this information in the form of a text message. Thetext-messaging server 110 can use the information with other informationsent by the user via text messages to complete purchases or othertransactions or information requests.

In an embodiment, the application 104, when instructed by a user via aprofile 106 to send requests to a receiving text-messaging system 112,instead sends the request (with any necessary routing information, suchas a short code indicating the receiving text-messaging system, andother information) to the text-messaging server 110. The text-messagingserver 110 receives the request, logs information required for billingand other purposes described above, performs any required modificationsto the text message, and sends the modified version of the text messageto the receiving text-messaging system 112.

In another embodiment, the application 104 may compose a text messagefor the text-messaging server 110, pre-pend to the message a short codeindicating the text-messaging system 112, and send the complete messageto the text-messaging server 110. The text-messaging server 110, uponreceiving the text message, removes the pre-pended short code and sendsthe resulting message and original sender's phone number (i.e. the phonenumber for text messaging device 102) to the text-messaging system 112indicated by the short code. The resulting message can be sent viaanother text message, via the internet, or via other means ofinformation or data exchange. The text-messaging system 110 can thenprocess the request and send any required confirmation, content, orother information to the user's text-messaging device 102 via a returntext message(s).

The text-messaging system 112 may be configured to send such a returntext message to the text-messaging server 110 so that the text-messagingserver 110 may monitor and/or modify the return text message to provideinformation from the text-messaging server 110 to the application 104 onthe user's text-messaging device 102 (e.g., advertising or couponinformation or other information, etc.).

In an embodiment, the short code associated with the text-messagingsystem is a dedicated short code used only for messages sent from theapplication 102. Use of a dedicated short code allows the text-messagingsystem to treat messages received from the application 102 differentlythan those received directly from standard text-messaging deviceclients. This simplifies billing and accounting operations when suchbilling and accounting differs for messages sent from standardtext-messaging device clients vs. messages sent from application 104. Inaddition, the text-messaging system may send text responses to thetext-messaging server 110, rather than sending them directly to the testmessaging device 102, when the response is associated with a requestreceived from the application 104 using the dedicated short code.

The text-messaging system 112 may provide on a system-by-system basisfor various message transfers. The text-messaging system 112 may providethat text messages be sent directly from a user's application 104 to thetext-messaging system 112, and any return message be sent directly tothe user's application 104. The text-messaging system 112 may alsoprovide that text messages originating from a user's application 104 aresent to a text-messaging server 110, modified at the text-messagingserver 110, and sent to the text-messaging system 112, and that anyreturn message is sent directly back to the user's application 104. Thetext-messaging system 112 may further provide that text messagesoriginating from a user's application 104 are sent to a text-messagingserver 110, modified, and then sent to a text-messaging system 112, andthat any return message is sent to the text-messaging system 112,modified, and sent to the user's application 104. Variations of theabove methods will be apparent.

In another embodiment, instead of disposing the text-messaging server112 between the text-messaging system 112 and the user's application104, additional messages can be sent by the application 104 and thetext-messaging server 110. For example, the application 104 sends thetext messages as described above directly to the text-messaging system112 and additional text message(s) directly to the text-messaging server110. The additional message(s) may contain information for messagetracking, billing, and accounting, a short code number indicating thetext-messaging system 112, information about the type of request ortransaction, profile version number, and other information which mayhave been stored by the application 104 for future forwarding. Any orall of the control channel information (described above) may be sent toand from the application 104 directly to and from text messaging server110. Such information may or may not be related to the particulartext-messaging system 112.

The application may in some cases utilize one or more of thetext-messaging server options described above or may not use a server inother cases. The decision to send messages directly to thetext-messaging systems or to send the text messages through atext-messaging server may be made on a profile-by-profile basis usinginformation contained in the profile providing such indication of methodor the decision may be made based on information contained in theapplication. This flexibility is convenient because some text-messagingsystems may and some may not require that accounting and billinginformation be collected and for other reasons. In a typical situation atext messaging device 102 will contain some profiles which communicatedirectly with text messaging systems 102 and will also contain someprofiles which communicate indirectly with text messaging systems 112through text messaging server 110. Also, in such typical case, controlchannel messages and information are provided to and from theapplication 104 to and from text messaging server 110 even though somesuch control information will relate to the profiles which communicate“directly”, some such control information will relate to profiles whichcommunicate “indirectly” and some such control information will beindependent of all such profiles.

The text-messaging server 110 may send text messages to the application104 with further information (e.g., advertising and coupon information,and other information).

In an embodiment, the text-messaging server 110 provides text-basedservices itself. That is, the text-messaging server 110 acts as atext-messaging system 112 as described herein. The use of thetext-messaging server 110 for text-based services effectively co-locatesthe functionality of a text-messaging system 112 and the text-messagingserver 110. This configuration allows the text-messaging server 110 or aseparate server to provide all or some of the same text-based servicesthat are otherwise provided through third party text-messaging systems.For example, the text-messaging server 110 may provide weatherinformation, stock quotes, sports information, chat services, taxiservices, query services, information services, movie listings, searchservices, and other information and services. The configuration alsoallows third party parties to provide content and information to users.The content and information may be loaded onto the text-messaging server110, or linked to the text-messaging server 110 using tools provided bya website/server and/or the text-messaging server 110.

In an embodiment, the text-messaging system 112 may providetext-messaging system information to users while acknowledging the brandproviding the information, or alternatively, without acknowledging thebrand providing such information.

Types of content and information which may be provided by thetext-messaging system 112 include, but are not limited to:

-   -   1) information already available through third party        text-messaging systems;    -   2) information available in the future through third party        text-messaging systems;    -   3) the aforementioned information provided to the end-user both        with and without consideration of the content or information        provided;    -   4) information owned or licensed by the owners of the        text-messaging system 112; and    -   5) information made available by third parties and deposited        into or linked to the text-messaging server 110.

Profile and Application Download

Embodiments of the present invention provide for methods of loadingprofiles into a text-messaging device 102, and for locations where auser may access profiles for loading. Examples include, but are notlimited to, the following:

-   -   1) One or more servers and/or websites (including the text        messaging server 110) each provide a one or more profiles from        which a user logged into the website may select from. Once        selected, profiles are downloaded directly to the text-messaging        device 102 over the air, or to the user's computer over the        internet and then to the user's text-messaging device 102 using,        for example, a serial, Bluetooth, USB, or other wired or        wireless connection. In an example, loading a profile over the        air includes: the user providing a device number for the user's        text-messaging device 102, the website/server sending a text        message containing a URL (pointing to the profile or profiles)        to the text-messaging device 102, the user accessing the text        message, selecting the URL, opening a mobile internet browser,        and downloading the profile directly to the text-messaging        device 102. Once loaded and appropriately disposed within the        file system of the text-messaging device 102, the application        104 recognizes the new profile 106 and enables the user to        access the text-messaging system 112 associated with the profile        106. In an example, a user logging into such a website can        determine if a profile is available for a particular        text-messaging system 112 by entering or searching for the phone        number (short code) of the text-messaging system 112, the name        of the corporation maintaining the text-messaging system 112,        and/or by category (e.g. weather information, banking, airline,        etc.). If such a profile is available, the user may load the        profile as described. In another example, the user may grant the        text-messaging website/server 110 access (e.g., using a        text-messaging device client designed for that purpose) to the        user's contacts list in the user's text-messaging device 102 so        that the text-messaging website/server 110 can search for        profiles available for any of the contacts (short code numbers)        listed and offer the user an opportunity to download any or all        of them to the user's text-messaging device 102. In addition to        the profile 106, the application 104 may be provided if it has        not yet been loaded onto the user's text-messaging device 102.        In the case of the application 104, additional information        including registration and payment information may be required        from the user (e.g. text-messaging device 102 make and model,        cellular operator, etc.). Demographic and other information may        be requested from the user at such time.    -   2) The user receives a notification via a text message        indicating that a new version of a profile already loaded on the        text messaging device 102 is available. The user may then select        a URL link in the text message to a Wireless Application        Protocol (“WAP”) site or website which prompts the user to        download the profile. Alternatively, the application 104 may        receive the text message indicating that a new version of the        profile is available and the application 104 may automatically        go to the URL using a web browser. The application 104 may then        initiate a download of the profile automatically. In another        example, the received text message notification is for an        entirely new profile for the user. In this case, the user may        have already agreed to receive such a new profile when it is        made available.    -   3) A website or web page of a corporation provides a profile 106        for the corporation's text-messaging system 112. A user logged        into such a website is allowed to retrieve the profile 106. In        an example, a bank provides a page or link within the website        which prompts the user for a device number of the user's text        messaging device 102 and other information, and then allows the        user to load the profile 106 for the bank's text-messaging        system 112 over the air as described above, and/or allows the        user to download the profile to the user's computer over the        internet for later loading onto the user's text-messaging device        102. In addition to the profile 106, the application 104 may be        provided if it has not yet been loaded onto the user's        text-messaging device 102. In the case of the application 104,        additional information may be required from the user (e.g.        text-messaging device 102 make and model, cellular operator,        etc.).    -   4) A corporation's website or web page provides a link to a        website and to a profile 106 associated with the corporation's        text-messaging system 112. A user then, for example, logs into        the website (if they are already registered) and accesses the        profile of interest, or is asked to register before being        allowed access. The profile can then be downloaded over the air        as described and/or downloaded using the user's computer over        the internet for later loading onto the user's text-messaging        device 102.    -   5) A text message is sent to a user's text-messaging device 102        (i.e. for such users who have previously installed the        application). The text message may prompt the user to download a        profile for a specific text-messaging system provider. The text        message may then have a link to the specific profile, which is        then loaded as described.    -   6) A text message is sent to the user in response to the user        opting into a marketing program or other program with the        text-messaging system provider. A text message may also be sent        to the user in response to the user sending a text message        requesting the profile in response to written instructions which        may be found on a website, magazine or newsprint, television ad,        etc. For example, a text-messaging system provider may provide        instructions such as the following to users on a promotional        flyer, poster, or menu (e.g., at the physical location of the        text-messaging system provider): “Please text ‘menu’ to short        code ‘12345’ to have our mobile application sent to your phone”        or “Please text ‘menu’ to short code ‘12345’ to have the        RESTAURANT mobile menu profile sent to your text-messaging        device.” Accordingly, the user sends an SMS using the short code        of the text-messaging server 110 with a code/message        corresponding to a request to download the profile. For example,        a paper menu at RESTAURANT X may read: “Please send ‘RESTAURANT        X’ to ‘12345’ to receive the RESTAURANT X Mobile Menu”.        Otherwise, send any of the short codes below to short code        ‘12345’ (RESTAURANT X) to place your order.” Such short codes        could for example correspond to meals on the menu. The profile        thus provides a clear and easy to use menu system allowing the        user to order several menu items of various sizes including, for        example, special order information (e.g., no onions on a        hamburger order). By contrast, a standard text-based menu order        system is restrictive (e.g., perhaps only certain meal        combinations may be ordered). In an embodiment, such a mobile        menu includes a RESTAURANT X menu background as well as branded        images and logos, etc., thus enhancing the user experience and        branding potential.    -   7) Within the application 104, the user browses a listing or        catalog (resident within the application 104) of profiles        available for downloading to the user's text-messaging device        102. The listing or catalog may be downloaded to the user's        text-messaging device 102 at the time the user downloads the        application 104. The listing or catalog can be updated in full        or with respect to changes/additions to the listing or catalog        each time the user downloads a new profile, an updated profile,        or an updated version of the application 104 or when requested        by the user. The listing or catalog can be updated periodically        and automatically, or at the request of the user with or without        prompting from the application 104 for the update. In an        example, the profile listing is updated each time the user        downloads a profile regardless of what download method is used        (e.g., via the website, via the application profile listing or        via sending a specific code with a short code). The profile        listing can be downloaded in the form of an “incremental”        profile listing after the first download to conserve memory and        reduce the download time and data size.    -   8) An existing text-messaging system 112 provides an option to        download a profile for the text-messaging system 112. For        example, the text-messaging system 112 may respond to the        request “download profile” sent to the corresponding short code        by sending a link to the profile. In this case, if the user        already has the application 104 loaded on the user's        text-messaging device 102 then a link to the profile will be        returned and if the user does not already have the application        104 loaded on the user's text-messaging device 102 then a link        to the profile and application together will be returned. This        is possible because the test messaging server 110 and text        messaging system 112 will in such example have records as to        which text messaging devices 102 have the application 102 loaded        and which do not (based on received phone number for text        messaging device 102). In another example, a user may be        prompted as follows: “Please respond with Y to download the        mobile application or profile for this text-messaging system.”    -   9) A dedicated toll-free number (e.g. an “800” number) is        available for the purpose of providing profiles to users of an        application 104. A user calling into an associated interactive        voice response system is given options to identify profiles of        interest and to download them to the user's text-messaging        device 102 via methods described.    -   10) A profile is transferable from one user directly to another        user via Bluetooth, Infrared Data Association, Near Field        Communications, or any other device to device communications        capabilities, for example, or using a PC as an intermediary.    -   11) A profile or profiles 106 and the application 104 are loaded        onto the text-messaging device 102 by the device manufacturer,        distributor, or cellular service provider. In this case, a        profile configured to allow access to information, content, and        transactions for the cellular service provider can be included.    -   12) The application and/or profiles are loaded via a SIM card or        via any other removable storage device.    -   13) The application and/or profiles are loaded from a kiosk or        other fixed terminal.    -   14) The profiles are loaded using a Near Field Communication        (NFC) connection at a point-of-sale or elsewhere.    -   15) A profile 106 is sent to the text-messaging device 102 via        SMS where the information to describe the profile 106 is        contained in one or more SMS messages. In this case, the profile        may rely on stored template and other information so that the        description is compact, given typical size constraints of SMS        messages.    -   16) A group of all or some of the available profiles are        downloaded with a list of the available profiles so that the        user can make a request at some time in the future from the        user's text-messaging device to begin using a profile going        forward. In this case, the profile is made available to the user        from within the application 104. Such a group of profiles may be        downloaded periodically to the user's text-messaging device 102.        This approach eliminates the need for a user to download a        profile each time the user wishes to begin using a particular        profile. The group of profiles not yet in use by the user can be        stored in compressed form on the user's text-messaging device        102 or on removable media coupled to the user's text-messaging        device 102 until such time as the user requests use of the        profile.    -   17) A profile may be loaded by scanning a bar code using a bar        code reader resident within text messaging device 102 or within        application 104. Such bar code reader may leverage the camera        component of the text messaging device 102. Because the nature        of the profiles of the present invention can result in profiles        which are very compact in size, such a technique of profile        (i.e. application) download to a text messaging device 102 is        possible using available bar codes and in particular two        dimensional bar codes (e.g. PDF417 bar codes or Datamatrix or        other bar codes) which typically support much higher information        content sizes (i.e. bytes of data). Note that the ability to        download an application using a bar code is a significant        improvement in respect to mobile phone application download        options available today.    -   18) Additional methods for profile and application download and        transfer and their respective benefits will be obvious to those        skilled in the art.

It will be appreciated that numerous methods for a user to download theapplication and associated profiles exist. Such availability furtherpromotes the user's ability to identify and access information, content,and transactions available through text-messaging systems. Anycombination of the above example methods for loading the profiles ontothe user's text-messaging device 102 may be deployed. While somedownload methods described above refer only to downloading profiles, themethods are applicable to downloading the application as well.

Practical Download Mechanisms

It will be appreciated that there are many possible download mechanismsfor the application 104. The application 104 may be large enough that adata connection or a cable connection (sideload) may be required.

Downloading may typically be performed after the text-messaging deviceoperator and make/model are determined. The specific text-messagingdevice API is then determined and the text-messaging device 102 is madeaccessible via text messaging. With the device API determined, theappropriate files for application 104 may be selected and the downloadmay take place. The text messaging server 110 or other website/serverfrom which the application 104 will be download may, in some cases,interrogate or otherwise determine the text messaging device 102 make,model, OS, wireless service operator and other characteristics which maythen be used to determine the device API and determine the appropriatefiles for application 104 may then be selected.

Example download options for the application 104 include the following(in addition to those described above):

-   -   1) A user performs a sync operation between the text-messaging        device 102 and a

PC (sideload). The user downloads the application 104 to the PC. Oncethe application is loaded using the sync operation, the user selects theapplication 104, causing it to be installed on the text-messaging device102.

-   -   2) The user performs a download using a data connection to a        mobile WAP/web site after initiating the download and receiving        the WAP/web site address via SMS message or other means. Such        initiation of the download may be done for example:        -   a. through the server/website: The user provides a phone            number for the user's text-messaging device 102, wireless            service operator, and device make/model through the            server/website. When the user accesses the WAP/web site            using the text-messaging device 102, then to the extent the            user's text-messaging device make/model is determined by the            WAP/web site, this information need not be provided through            the server/website; or        -   b. by sending a text message to a server: The user provides            the make/model of the text-messaging device 102 in the text            message. The device number of the user's text-messaging            device 102 and operator may typically be determined from the            text message.

To perform the download, the user receives a text message or othermessage containing a URL for a WAP/web site where the application 104resides. The user enters the URL in a browser or selects the URL link,causing a browser to open and the URL to be accessed. The user may beprompted by the WAP/web site to initiate the download. Once initiated,the application is downloaded to the text-messaging device 102. The usermay then select the application 104 install file(s), causing theapplication 104 to be installed on the text-messaging device 102, afterwhich the application 104 may be run by the user.

Generic Profile Support

Various generic profiles may be created and supported. A generic profileis a profile which is not specific to a particular text-messaging system112, but which enables text-based transactions with severaltext-messaging systems. A generic profile can be useful when, forexample, several companies/brands use identical codes to performtext-based transactions.

In an example, two movie theaters, one a THEATRE X with 12 screens andone THEATRE Y with 24 screens, use the codes in the body of an SMSmessage for a ticket reservation transaction, including a theaterlocation code, a theater number, a show time, a number of adult tickets,a number of child tickets, a number of senior tickets, and “today” or adate using MMDD. An example SMS message for a reservation transactionfor a theater with theater location code 17, for 2 adults, 4 children,and 1 senior ticket, for theater screen number 5, playing at 5:20 todaymight be “17 5 520 2 4 1 today.” Assuming a menu which reads: “Use yourMovie Theater Profile to purchase tickets via SMS using the short code54321 (“THEATRE X”) or use the menu system below to purchase tickets viaSMS using your SMS client,” a description of the codes and messageformats for ticket reservation may then be provided.

The user runs the application 104, selects the movie theater profile,then navigates the menu tree, which prompts the user for the theaterlocation, the number of each type of ticket, the theater screen number,the show time, the day and the short code (e.g., 54321 for THEATRE X).Generic profiles and associated codes and message templates can beprovided to customers who may then opt to use the generic profile, or,alternatively, create a custom profile.

The use of a generic profile is advantageous in that many users mayalready have access to the generic profile at the time a particularmovie theater owner decides to provide movie ticket reservations viatext messaging. If the owner creates a custom profile then it takesvaluable time for users to download the custom profile, causing thenumber of users capable of purchasing tickets using the system to beundesirably small.

Generic profiles may be created for several types of common text-basedtransactions. As described above, a company may opt to use a genericprofile, or use a custom profile including images for purposes ofbranding, both using the generic templates/codes.

A semi-custom profile is a generic profile with a template and codes,further customized through additional information. Using the movietheater example above, when the user runs the application 104 andselects the movie theater profile, the user may be first prompted forthe theater short code (e.g., 54321 for THEATRE X). The application 104then sends a text message containing the theater location code to theshort code 54321 to retrieve the customization information, e.g., thenumber of theater screens, theater name (e.g., “THEATRE X”), and apromotional Banner (e.g., “Welcome to THEATRE X”).

Alternatively, the text message containing the theater location code andthe THEATRE X short code can be sent to a different short code toretrieve the information. Alternatively, the THEATRE X short code can berecognized by the application 104 and the customization information canbe retrieved from memory rather than received over the air using a textmessage. Once received or retrieved, the customization information isused to further customize the movie theater profile. The user can thennavigate through a set of prompts to make the movie ticket reservation.

Profile Customization

In an embodiment, a profile 106 provided to a user may containinformation specific to the user. In an example of a bank profile, theuser's account number and account suffixes for savings and checkingaccounts, for instance, can be included in the profile as entryshortcuts so that the user sees the shortcuts on first using theprofile. This user specific profile generation is advantageous to theuser in that the frequency of errors in user data entry is reduced,adding to the convenience of the application 104.

In another embodiment, when a user sends a text message using a standardclient available on the user's text-messaging device 102, theapplication 104 may monitor the user's entry sequence and prompt theuser the save certain of the entries as sequence shortcuts. In suchcases, the application 104 can auto-generate a profile 106 containingthe sequence shortcut and prompt the user to name the profile and thesequence shortcut so that the next time the application 104 is run, theuser has access to the sequence shortcut and profile. The user may optto save or not save the sequence shortcut.

A message “compose mode” may be provided within the application 104,allowing a user to compose the text messages for text-messaging systemsfor which no profile is available, or for which the user has not loadedan associated profile. The compose mode can provide the user with atleast some of the conveniences available when a profile is available foraccessing the text-messaging system. The compose mode provides the userwith access to a standard text editor and some or all of the user'saccount information and other information and the user's entry shortcutsentered in other profiles. Access to the information is by means of ahierarchical or other menu tree, or other menu structure. The user canuse the menu means during composition when inserting such userinformation into a text message.

In an embodiment, new information entered while composing a textmessage, can be captured by the application 104 and saved in the form ofentry shortcuts for future use. The user need not have a profileassociated with the text messaging system 112 for which the text messageis composed. The user may also choose whether or not any such newinformation is saved as an entry shortcut. As described above, user andother information entered when using a profile may be available to theuser while composing a message using the above described “compose mode”of the application 104. In compose mode, the user can use theapplication 104 for any text messaging purpose, including interfacingwith a text-messaging system 112, or for sending and receiving textmessages to and from individuals. Accordingly, the user need not use theexisting client.

Text-Messaging System Detailed Operational Description

Once the application 104 and one or more profiles 106 are loaded onto auser's text-messaging device 102 and the application 104 is set upaccording to the user's preferences, the user may make use of theapplication 104 and features. Following are example embodimentsincluding steps the user may take to access the system and a descriptionof the operation of a typical text-messaging system 112.

Menu Navigation and Data Entry

In an embodiment, the user runs the application 104 and selects aprofile 106 from a list of available profiles loaded on the user'stext-messaging device 102. The profile will typically be selected from aprofile list view. Also, from this profile list view, the user may havevarious options with which to manipulate a selected profile (e.g. deleteprofile, create launch icon for profile, revert to un-customizedprofile, etc.). Once a profile 106 is selected, a first menu or displayis provided to the user. The user may then select from available menuitems using appropriate keys on a user keypad, or enter data requestedon the display. For example, up and down keys of a 5-way navigationfunction on the text messaging device 102 may be used for selecting fromthe list of menu items and for scrolling list should all of the menuitems not be visible on the screen.

The application 104 may provide a “seek” feature such that the firstmenu item (including profile name if at the profile list view) startingwith a given letter combination may be accessed quickly when the userenters the characters on a QWERTY keypad. Or, the user may select suchletters on a standard phone pad key by selecting the numbercorresponding to a set of letters (e.g., 6 for M/N/O, or 2 for A/B/C,etc.) in which case the application will find the first potentialmatching menu item. A 5-way navigation function typically includes amiddle button for entering the selected menu item.

When menu items are selected, the application 104 records the user'sselections for future use and displays the next menu list or display forthe user. Some menus may include prompts for user input such as useraccount number, user PIN, user credit card number and expiration date,zip code, dollar amounts for account transfers, dates, times of day,social security numbers, phone numbers, other numbers and values, etc.When the application 104 prompts the user for such entry information,the application 104 provides an appropriate and convenient user entrymechanism so that the user may enter the required data.

The user input may be formatted as it is being entered by the user sothat the user may see clearly see that the input being provided iscorrect. Such formatting may include dollar signs, decimal points,indications of month, day and year entries, etc. The application 104 canperform a check for errors in the user input (incorrect characters, toomany digits, too few digits, incorrect values, etc.) to the extent suchlimitations are known at the time the profile is created and are basedon requirements of the text-messaging system 112. The application 104can detect the entry of such incorrect data and prompt the user tocorrect the entry before moving to the next menu list or entry displayor reject the entry so that it is not accepted by the application.Appropriate error and warning pop-ups and audible alerts may be used toassist in the process. When appropriate, the application 104 may providepop-up calendars, pop-up alpha-numeric entry pads, and other pop-upapplications or other user interface mechanisms to facilitate quick,error free, and convenient data entry. For entry items which may beconsidered private by the user, the application 104 may hide the entry(e.g., substitute a “*” symbol for the digits of a PIN, and all but thelast 4 digits of credit card numbers, etc.).

The user may continue through several menu lists and/or entry menusuntil the application 104 has collected the information required tocreate the text message corresponding to the user's information request,purchase or transaction. In an embodiment, an optional prompt ispresented to ensure that the user wishes to send the request. Theapplication 104 prepares the text message and sends it to thetext-messaging system 112. Alternatively, the text message is sent to atext-messaging server 110.

Responses to Queries and Transaction Requests

After the text message is sent, and before a corresponding messageresponse is received, the application 104 may be configured to display amessage indicating a status such as “Retrieving the Weather,” or“Retrieving Data.” This display may also include a navigation optionsuch as “Return to Main Menu,” enabling the user to return to a priormenu to perform additional queries or transactions, for example. Once amessage response is received, the application 104 may flag an internalalert. When this alert is flagged, the application 104 may display analert menu item or pop-up, such as “Response Received” (set according tothe Profile level attributes), which can be displayed at appropriatemenu levels, also under control of menu level attributes. In anembodiment, the alert menu pop-up is provided along the option todismiss the alert and the option to go to the associated receivedmessage (e.g. “Read”). On selecting the “Read” option, the user ispresented with the received message and in a typical case is transferredto the application inbox view.

The application 104 is typically configured to display the receivedmessage response to a query immediately upon arrival. If the data doesnot fit on the screen, the user can use scroll up/down keys to view textotherwise out of view, similarly to the way in which long menu lists maybe viewed. In an embodiment, text messages received from a short codecorresponding to a profile 106 and a text messaging system 112 areintercepted by the application 104 and displayed for the user. Textmessages from a website/server or the text-messaging server 110 may alsobe intercepted by the application 104. If the received text messageshave information (e.g. certain words, text or characters are know to becontained in the received message corresponding to a message sent)useful in determining which received message corresponds to a querysent, then the information may also be used for association and errordetection. When the text-messaging server 110 is used, the application104 may include a sequence number in a text message query sent to thetext-messaging server 110. The sequence number may then be sent back tothe application 104 within the message response. This sequencing thusallows received text messages to be uniquely associated with textmessages sent as queries. When a one short code is used to send queriesto test messaging server 110 in order to access several text messagingsystems 112 corresponding to a respective several profiles, each profilemay use a unique keyword (e.g. the profile name) in the outgoing querytext message to identify which of the text messaging systems 112 thequery is intended for. Then correspondingly, when a response isdelivered in association with such query by text messaging system 112 totext messaging server 110, text messaging server 110 may include thesame keyword in such response before passing such response back toapplication 104. In this way, the queries sent from application 104 fora variety of profiles may share the same short code and the responses tosuch queries may be uniquely associated with the correct profile.Further required association for query/response message pairs sent fromthe same profile may utilize the additional methods described above(such as matching to expected text or words in the received message).

The application 104 and profiles 106 may also provide additionalformatting information, and graphical images used to enhance the displayof information in the received message (e.g., the use of sun and cloudicons as part of weather information display or Zodiac signs for dailyhoroscopes).

Shortcuts

While a user is creating a request or transaction using the application104 and a profile 106, the application 104 may save information enteredby the user, referred to as “entry shortcuts.” When the user completesthe creation of the request or transaction, and a corresponding query issent, the application 104 saves the sequence of steps and informationentered by the user. The saved sequence is referred to as a “sequenceshortcut.” Entry shortcuts and sequence shortcuts provide furtherconvenience to the user and serve to speed transactions performed by theuser and reduce the frequency of user entry errors.

In an embodiment, an entry shortcut appears in the entry menucorresponding to the particular profile 106 in which such entry shortcutwas created the next time the user enters such menu. In an example, theuser enters an account number “123456789” at an entry menu, and thevalue is saved as an entry shortcut. The next time the user reaches suchentry menu, the entry shortcut shows up as a “menu item” (e.g.“123456789”). The user is given an option to select this entry shortcut,select another entry shortcut (if any), or enter another account numberin an entry box.

In another embodiment, the application 104 may “propagate” or “copy”entry shortcuts to other entry menu levels within the profile 106. Forexample, if the example account number entry shortcut above were createdat a certain entry menu level in a particular profile 106, then,according to attributes in the profile 106, the entry shortcut could becopied to any or all other entry menu levels within the profile 106 atwhich the user may be prompted for the account number. In anotherembodiment, the entry shortcut may be propagated into the entry menulevels of one or more other profiles on the user's text messaging device102 according to additional parameters in the profile 106 and/orparameters in the other profiles.

In an embodiment, entry shortcut information may be saved for user entryitems comprising fixed information such as account numbers, etc. Forvariable information, such as a dollar amount or a date, the informationmay not be saved as entry shortcuts under control of the profileattributes.

In another embodiment, the application 104 allows the user to designatecertain variable user entry items as fixed for purpose of saving them asentry shortcuts and for purposes of creating certain sequence shortcuts.This designation allows, for example, an entry shortcut to be generated,which provides for the transfer of a fixed amount (e.g. $1,000.00) fromone account to another and the amount to be used in a sequence shortcutwithout prompting the user for input when the sequence shortcut isexecuted. The user is in this example, effectively overriding thedesignation of a variable type value to make such value a fixed typevalue.

The application 104 may also allow the user to designate certain fixeduser entry items as variable at the time of entry and during creation ofa sequence shortcut. The entry item designated as such will not be savedas an entry shortcut. This allows, for example, generation of a sequenceshortcut which provides for local traffic information by prompting theuser for the user's current ZIP code (e.g., 92805) instead of using theZIP code entered when the sequence shortcut was created. The twodesignations described above allow entry values initially designated asfixed to be variable for use in sequence shortcuts, and likewise forentry values initially designated as variable to be treated as fixed forsaving as entry shortcuts and for use in sequence shortcuts.

After it is created, a sequence shortcut will appear in the first menulist or display presented to the user the next time the associatedprofile is selected. If selected, the sequence shortcut runsautomatically from start to finish. If there are no user prompts forvariable entry information, then the sequence shortcut can execute thesteps for sending a text message corresponding to the request ortransaction performed when the sequence shortcut was originally created.Alternatively, the user may be prompted before such a text message issent. If there are user prompts for variable entry information, then thesequence shortcut can execute all of the other steps, stopping only toprompt the user for such variable entry information, before continuingon to execute the sequence shortcut through to the step of sending atext message corresponding to the request or transaction performed whenthe sequence shortcut was originally created. Alternatively, the usermay be prompted before such a text message is sent.

In an embodiment, the entry shortcut and sequence shortcut informationis included in the profile file, or it may be included in one or moreseparate files. This separate file option, among other benefits, allowsthe sequence and/or entry shortcut information to remain on textmessaging device 102, and to be retained for the user unmodified whenand if the user downloads a new version of such associated profile whichwould necessarily require the removal of the original profile.

In an embodiment, an “auto-entry shortcut” is provided. The auto-entryshortcut allows a user to indicate that a particular menu item in agiven menu list is always to be selected at that menu list level. Forexample, if the user is asked to select between English and Spanish at acertain menu list level, the user may choose English and indicate thatthis selection is to be made each time this menu list is encountered. Anauto-entry shortcut may similarly be configured for a user accountnumber which is unlikely to change, but which must be entered each timethe user reaches a certain menu level. The application 104 would thenautomatically make the desired selection each time the menu list ispresented. The user can indicate that an auto-entry shortcut is to beused by selecting the desired item at a certain menu list level,selecting a predetermined option menu or key, and then selecting anappropriate option.

Scheduled Transactions

In an embodiment, the application 104 allows a user to schedule asequence shortcut to be run once at a later time or on a recurring basisin the future. Using such a “scheduled transaction,” the user may, forexample, schedule a transfer of funds from the user's checking accountto a savings account at a particular time and date. The application 104determines at the appropriate time that the scheduled transaction is tobe triggered, and executes the selected sequence shortcut. Theapplication 104 may be configured to provide a confirmation to the userthat the scheduled transaction was performed. The user may be promptedfor the transfer amount or to accept the transaction before itsexecution is completed. The scheduled transaction may also be configuredto alert the user just prior to execution of the scheduled transaction.For example, the scheduled sequence shortcut may only be executed afterthe user is first interrupted (e.g., by an audible alert from thetext-messaging device 102) and the user approves of the sequenceshortcut to be run.

Scheduled transactions may be set to run with a specified recurrence(e.g., each Monday at 8:00 a.m., each evening at 6 p.m., each weekdaymorning at 5:30 a.m., etc.). Such scheduled transactions make repeatedaccesses to information more convenient for the user. A user may wish toreceive certain stock quotes each weekday morning at 7:00 a.m., orreceive traffic information for the user's route to work each weekdaymorning at 7:30 a.m. The capability to schedule transactions with a testmessaging system 112 advantageously simplifies the configuration ofrecurring requests for information. While the example provided aboveinvolves text messaging systems 112, scheduled transactions of the typedescribed may be implemented using other communication and/or datasystems.

Menu Item Ordering

In an embodiment, each time the user utilizes a profile 106, theapplication places the menu items in each menu list at each level in themenu tree in order of frequency of use such that the most frequentlyselected menu items subsequently appear at the top of the menu list.After an entry shortcut or sequence shortcut is created, it is placed atthe top of the appropriate menu list as if it were the most frequentlyused menu item and may or may not thereafter be ordered according to thefuture frequency of use. Initially, the ordering follows an orderprovided in the original profile 106. It will be appreciated that otherordering methods are possible and may be employed. The user will havethe ability to disable further menu reordering and to revert to theoriginal profile ordering using application settings.

Language Support

The application 104 is advantageously suited to support multiplelanguages because the user interface is in substantially in awritten/textual form. In this way, for example, languages noteffectively supported by a test messaging system (e.g., the messageformats are provided only in English) may be supported by theapplication and associated profile. When a text messaging server 110 isemployed, the server 110 may be configured to convert received responsesto the language desired and indicated by the user. The user's languageindication may be known by the server 110 from the user's registrationinformation, or it may be provided by the user in the generation of eachtext message query sent by the application 104 and read by the server110. It will be appreciated that an SMS system is merely one example ofa communication channel, and that the above described language supportcan be implemented using other data and communication channels. When theapplication and profile are used to communicate directly with the textmessage system (without the use of text messaging server 110), it isstill possible to support languages other than the language that thetext messaging system is designed to support. In order to do so, themenu items, prompts, header text, etc. all under control of the profilewill need only be entered in the desired language. For menu item lists,the application and profiles provide for a “replacement” value for eachmenu item to be sent in the query instead of the menu item itself. Forexample, a list of menu items (California, Nevada, Texas, etc.) may haverespective “replacement” values (CA, NX, TX, etc.). The advantage of the“replacement” values is that the UI may provide the user with a userfriendly and understandable representation of menu items for selection,while the text messaging system may require or accept a different set ofvalues. In this way, the user experience is optimized and madeconsistent among and between profiles, while satisfying the requirementsof the text messaging system. It may be easily seen that using the“replacement” values, selected menu items in one language, provided forthe benefit of the user, may result in queries sent which contain valuesin a seconds language (i.e. the language of the text messaging system).It is also worth noting that the present invention will allow for thecreation of several profiles, each representing a different userlanguage, each capable of interacting with the text messaging systemwhich is itself supporting a single base language. The user, whenselecting profiles for download would be allowed to select profilesbased on language among other criteria discussed previously. In is alsoworth nothing that a single profile may support multiple languages. Inone example, the first menu of such a multi-language profile wouldcontain a list of the supported languages for the user to choose from.Once, selected, the menu tree extending from such initial menu in themenu tree would thereafter contain menu items, headers and prompts inthe selected language.

Branding

Because the application 104 may be configured to provide users withaccess to the text messaging systems of corporations and other suchentities, there is a significant opportunity to leverage the features ofthe text-messaging device 102 for enhanced access to such text messagingsystems. For example, corporations and entities maintaining these textmessaging systems may present promotional, advertising, and brandinginformation to users by way of the application 104. Accordingly, theapplication 104 can be configured to provide features addressing thepromotional, advertising, and branding interests of these corporationsand entities. For example, when a profile 106 is utilized, theapplication 104 may display a background image at each screen developedand/or approved by the corporation or entity (e.g. a corporate logo).

In an embodiment, a corporate logo or other image may be placed atappropriate locations within a menu system (such as in the top orprimary header at each screen) supported by a profile 106. Text bars andscrolling banners may also be displayed for promotional or advertisingpurposes at appropriate locations within the menu system. Additionally,backgrounds for the menu system and certain tailored audible indications(such as an indication of menu item selection/entry) may be designedaccording to the branding interests of the corporation. For example, a“cha-ching” sound linked to menu item selections could be supported by aprofile 106 for a bank.

In another example, a company logo may be used in the profile listingswithin the application 104. A company logo may also be used as a launchicon for shortcuts and profiles placed in the program launch screen onthe text-messaging device 102. Without an application 104, or some otherdedicated application, there are no conventional means by which an ownerof a text messaging system 112 can provide such branding images inconnection with a user's messages intended to retrieve information andprocess transactions using the text messaging system 112. In anembodiment, the text messaging system 112 is an SMS system. In anotherembodiment, the text messaging system 112 is implemented using one ormore other communication and/or data channels.

Text Messaging System Modifications

While the application 104 may access many existing and future textmessaging systems 112 with no modification to the text messagingsystems, certain advantages and additional features may be realized whenchanges to many text messaging systems are made. The following examplesare described with respect to modifications made to an SMS textmessaging system, where the application 104 sends messages to the SMSsystem directly:

-   -   1) A modified SMS system may provide feedback to the application        104 to acknowledge receiving input from the application 104. The        modified SMS system may also provide feedback to the application        104 indicating that an error condition has occurred (e.g., a        user data entry input such as a user account number is invalid).        It will be appreciated that other methods may be employed for        further protection against error conditions.    -   2) A modified SMS system may provide information as to the        revision number of the

SMS system being accessed to determine if the SMS profile 106 residingon the text-messaging device 102 is out of date with respect to the SMSsystem. The user may be prompted to update the SMS profile prior toaccessing the SMS system using the SMS application.

-   -   3) A modified SMS system may track and log messages sent to the        SMS system from the SMS application for billing purposes.    -   4) A modified SMS system and its associated SMS system creation        modules can be modified to output information in the form of        menu formats and trees, user entry fields, data files, etc., to        avoid having to reverse engineer the SMS system to create SMS        profiles. Such output from the SMS system or SMS creation        modules can be post-processed to generate all or part of an SMS        profile.    -   5) A modified SMS system may periodically send information via        SMS messages to the user's text-messaging device 102, which are        used by the application 104 to change or augment information        already contained in the user's SMS profile 106 corresponding to        the modified SMS system. For example, an SMS profile 106 for a        cinema may receive periodic updates to provide information as to        specific movies and the show times. Also, minor changes, updates        and corrections to an SMS profile may be sent in this way.

Other Applications

Embodiments of the present invention may be implemented for otherapplications:

In an embodiment, the application 104 and associated profiles are usedto control a television or multimedia system. An infrared port availableon many text-messaging devices 102 is used to transmit appropriatecommands to the multimedia system. Alternatively, a Bluetooth port (orother wireless port) available on many text-messaging devices 102 isused to transmit appropriate commands to the multimedia system eitherdirectly, or via a remote unit configured to convert Bluetooth commandsto appropriate infrared commands. In such an application, a set of menuscan be provided which allow the user to select any of multiplecomponents of the multimedia system, and to control the unitsindividually. The sequence shortcut feature described above allows theuser to execute complex control sequences to set up the multimediasystem for various operational modes (e.g., a satellite TV mode, a cableTV mode, a VCR mode, a DVD mode, etc.). More specific mode control maybe provided as well. For example, a sequence shortcut can be configuredand appropriately named for setting up the multimedia system and tuninga receiver component to a specific channel.

In another embodiment, downloadable profiles provide flexibility tosupport a multitude of multimedia systems, components, and modes,including user customization options. In addition to multimedia systemcontrol, the application 104 and profile 106 can monitor and track achannel selected by the user, thus enabling further system capabilities.For example, using a UI based on a profile 106, a user may requestinformation regarding a particular TV commercial being shown on theselected channel. When the user requests such additional information,the application 104 may send an SMS message including the selectedchannel with a timestamp to an SMS server (i.e., text messaging server112). The server 112 can then identify the TV commercial indicated bythe user. The commercial sponsor is notified with appropriateinformation necessary for it to provide to the user the requestedadditional information.

In another embodiment, users may purchase products and services thoughsimilar means. The additional information requested by the user from thecommercial sponsor may include, for instance, a purchase request.Advantageously, such interactive TV capabilities are achieved withlittle or no interaction with cable and satellite television operators.The application 104 and a profile 106 may also be used for other formsof interactive TV. For example, SMS messages may be sent to controlavatars within such TV programs, to vote on endings and other outcomesand actions, select plot choices, and generally influence the course ofthe TV program.

Profile Contents

A profile 106 is processed by the application 104 on a text messagingdevice 102 to provide the user with an enhanced ability to interact witha text messaging system 112 (or a text messaging peer 114, or a webservice 118 through API 120 via a text messaging server 110). Theprofile generally defines user interactions and device 102 actions. Anapplication 104 processing a profile 106 on a text messaging device 102generates an interface according to the profile 106. In one embodiment,profiles are implemented using XML (eXtensible Markup Language).

Profiles can include attributes of various types. Because the profilesare made of predefined attributes types, the application can process anyprofile which is created using the defined attributes. The attributesdescribe the UI, for example, as a menu tree and describe the send andreceive message formats of the specific text messaging system which isassociated with the profile. In one embodiment the attributes can begenerally grouped into the following categories: profile level, menulevel, menu item, entry action, display action, send SMS action, callaction, and URL action attributes. In one embodiment the send SMS actionincludes sending a message or data via a different communication channelsuch as a digital packet data channel. The following is an example listof attributes, intended for storage in an XML file, for profiles with abrief explanation of the characteristics of each attribute. Theattributes are grouped into the categories listed above.

Profile Level

Attribute Description Profile XML File Name The profile XML file name isa concatenation of the Profile Name with version and minor versionnumbers. Profile Name and Version are attribute values included in theProfile. An example file name is “Google v3.00.99.” Version numbers areincremented each time a profile is written out in an XML file. Thus, thenext revision to the Google profile file name is “Google v3.01.00.”CreationDate Set to the current date when the XML file is written out.ProfileName ProfileName is the name given by the profile designer (e.g.,Profile Name = Google). ProfileName is used in the profile XML filename, the primary header and in web site and application profile lists.ProfileCat Profile category list. The vertical industry type(s) based onthe profile. This is used for ad placement and website profile listing.Version The current profile version number. Shortcode List of shortcodesused to receive messages for the profile. The first short code in thelist is used for sending messages. ProfileType The profile type (e.g.SMS profile or IVR profile). LaunchIcon Pointer to a location and nameof the icon which may be placed on the desktop (if DesktopIcon is set toTRUE). DesktopIcon If set to TRUE, then the application 104 places alaunch icon on the desktop in the programs screen. The icon is“LaunchIcon” and the program name is ProfileName. MenuBG Pointer to alocation and name of a graphic used as the background for the screens.PrimHeaderIcon PrimHeaderIcon points to an image file (e.g. a companylogo) used in primary headers. PrimHeaderText PrimHeaderText (if any) isdisplayed in the Primary Header to the right of the PrimHeaderIcon (ifany). BannerText The BannerText (if any) scrolls from right to leftacross the screen, typically above the keypad. MenuReorder When set toTRUE, menu item reordering takes place. When set to FALSE, no furthermenu item reordering is performed. AlertText Text displayed to the useras the left soft keys at all levels when an alert is registered by theapplication (e.g. when a message arrives). The text is removed when thealert is either cleared or dismissed. PayFor Text displayed to the userwhen the profile 106 is loaded in the application 104. Used for profileswhere pay for content may be accessed using the profile as a warning tothe user. ProfileDescription Text displayed when the user requestsprofile Info in the application 104. Regions Region where the profile isapplicable (e.g. USA, India, etc.). RemoveHiddenItems If set to TRUE,the application 104 does not show hidden menu items. If set to FALSE,the application 104 shows the hidden menu items. InitialId Attribute inthe XML file, indicating the initial menu id. PUC Profile Usage Count,comprising statistics information maintained internally by theapplication 104 as to the usage of the profile 106 for sending a query.MSCF Used by the application 104 for message concatenation. MSCFincludes three values: start txt, end txt and separator, which indicatesthe concatenation format of a multi-part response. When there are two ormore response messages for a single request, it contains a stringindicating which part of the message a particular response comprises. LB(LoopBack) When set to TRUE, the request message sent is looped back asthe response to the application 104 by bypassing the SMS channel. DAd(Dynamic Ad) When set to TRUE, a dynamic advertisement is allowed to beplaced in the profile. Either Static Ads or Dynamic Ads or both can beplaced in a profile, or none can be placed. SAd (Static Ad) When set toTRUE, a static advertisement is allowed to be placed in the profile.Interval Indicates an interval over which profile usage reports are tobe collected. Indirect Indicates that the profile is an indirectprofile. The communication is facilitated using the text messagingserver 110. For example, this is applicable to a web service 118.Operator Specifies a list of wireless operators with which thisparticular profile 106 operates. If the field is empty, the profile 106operated with all the operators. Allows profiles to be generated forspecific wireless operators or to exclude profiles from operation withspecific operators. Also, allows customization of profiles on anoperator by operator basis.

Menu Level

Attribute Description MenuName Identifies a unique menu in the profile.When MenuName is referenced in a Query Format, the menu item selected bythe user (or menu item “replacement” value if any) within such menu, isused in the Query Format in replace of MenuName. So if the user selects“California” at menu “State Menu”, then California (or the replacementvalue “CA” if CA has been entered as a “replacement” value) will be usedin the Query Format. ID A unique ID used internally by the application104. SecHdrText Text (if any) displayed below the primary header.StopSeqSc If set to TRUE, any sequence shortcut will stop at this menu.Back When set to TRUE, the application 104 causes a Back key to appearat the current screen. PlaceAd If set to TRUE, an ad may be placed atthis level. At the initial menu level, if set to TRUE, the BannerTextattribute is ignored. Otherwise, BannerText is displayed as required.The ad is placed above the keypad. The ad text either scrolls or iscentered under control of the ad text attributes. MV (Memorized The itemtext and “replacement” value of a selected item is Variable) memorizedin Memorized Variable. EscapeText, GotoId EscapeText (e.g., “Goto MainMenu,” if any) is displayed above the ad (if any), or above soft keytext. If EscapeText is selected, the application 104 changes to the menuspecified by the GotoId attribute. EscapeText can be placed either inoptions or menu. If EscapeText is set to NULL, no text is displayed.

Menu Item Level

Attribute Description Text Text for the menu item displayed in a menulist. OriginalText Whenever the item is renamed, the original text valueis stored under this attribute. The first time an item is renamed,OriginalText is set to Text so that it is available when the renaming isremoved. Hide When Hide is set to TRUE, the menu item is hidden. ID Aunique ID used internally by the application 104. AccessCounter Countsthe number of times the item is accessed. GoTo The next ID to beexecuted. Replacement Value is stored when the item is selected. It isinserted Value into the message as defined by the Query format. Forexample, if the MenuName = “States”, the menu item selected by the userhas Text = “California” and the Replacement Value = “CA” and theQueryFormat is {Info [States]}, then the query will be “Info CA”.

Entry Action

Attribute Description EntryName Text indicating that an entry value isto be entered (e.g., “Enter Account Number”) in the entry box or byselection of an entry shortcut. EntryType Data type of the entry value.For example, the MMDDYY EntryType is for 6 digit dates, such as 103105for Oct. 31, 2005. ID A unique ID used internally by the application104. SCPrefix Entry value type information for purposes of entryshortcut generation and propagation. MinChar If the entry value isvariable length, then it is constrained to be greater than or equal toMinChar. Length is set to NULL. MaxChar If the entry value is variablelength, then it is constrained to be less than or equal to MaxChar.Length is set to NULL. Length If the entry value has a fixed length,then Length is set to the length. MinChar and MaxChar are set to NULL.MaxValue The maximum allowable entry value. If MaxValue is set to NULL,there is no maximum. Mask Used to mask indicated characters of an entryvalue. If the entry type has a variable length, the entire value ismasked if Mask is set to ‘*’, and unmasked if Mask is set to ‘0’ or toNULL. If the entry value has a fixed length, then Mask has the samenumber of characters with ‘*’ representing a masked character and ‘0’representing an unmasked character. If Mask is set to NULL, no maskingoccurs. For example, a credit card having Length set to 16 may have Maskset to “************0000.” GoTo The next ID to be executed. PropagateWhen an entry shortcut is created from a value entered at this EntryAction, and if Propagate is set to TRUE, then the application 104 opensall other entry shortcut XML files for all other profiles and determineswhether the SCPrefix value used in this entry action matches an entryshortcut prefix in each other profile XML file. For each XML file forwhich there is a match, the application copies the entry shortcut beingcreated into the XML file. This allows for values entered during theexecution of one profile to be reused in another profile that can usethe same value, for example a zip code. FixedVariable Indicates whetherthe entry value is fixed or variable. Back When set to TRUE, theapplication 104 causes the Back key to appear at the current screen onthe left soft key. PlaceAd If set to TRUE, an ad may be placed at thislevel. At the initial menu level, if set to TRUE, the BannerTextattribute is ignored. Otherwise, BannerText is displayed as required.The ad is placed above the soft keys. The ad text either scrolls or iscentered under control of the ad text attributes. REB (Remove Entry Box)Specifies whether the entry box is to be removed. PE (Perishable Entry)Specifies whether the entry shortcut value is to be remembered when theuser leaves the profile. MultiLine If MultiLine is set to TRUE, theentry box is larger to accept multiple lines of characters. If MultiLineis set to FALSE, the entry box has the height of a single line.MSContacts Specifies whether the phone contact list is to be retrievedand displayed. MultiValue If MultiValue is TRUE, the value entered isconcatenated with (i.e. appended to) the prior values entered using thesame SCPrefic value. Used to allow for variable length entries, such asa variable length list of names (e.g. john:raj:dave). Separator IfMultiValue is TRUE, Separator defines the character which separates thevalues when they are entered by the user (e.g. “:”). MV (MemorizedVariable) The value entered is memorized in Memorized Variable.EscapeText, GotoId EscapeText (e.g., “Goto Main Menu,” if any) isdisplayed above the ad (if any), or above soft key text. If EscapeTextis selected, the application 104 changes to the menu specified by theGotoId attribute. EscapeText can be placed either in options or menu. IfEscapeText is set to NULL, no text is displayed.

Display Action

Attribute Description ID A unique ID used internally by the application104. DisplayTime The time (in seconds) that the screen is displayed. IfDisplayTime is set to InfiniteDelay, it is displayed indefinitely. IfDisplayTime is set to WaitForResponse, then the application 104 waitsuntil the message matching associated QueryType parameters is received,or until a fixed timeout period has elapsed. DisplayImage Indicates whatimage is to be displayed. Images may be centered on the screen, forexample, and text may be top-justified. If DisplayImage is set toSMSMessage, the most recent received message matching associatedQueryType parameters is displayed. QueryType The query type of themessage to be displayed (if applicable). GoTo The next ID to beexecuted. EscapeText, GotoId EscapeText (e.g., “Goto Main Menu,” if any)is displayed above the ad (if any), or above soft key text. IfEscapeText is selected, the application 104 changes to the menuspecified by the GotoId attribute. EscapeText can be placed either inoptions or menu. If EscapeText is set to NULL, no text is displayed.OutputText OutputText (e.g., “Account Balance”) is displayed under theprimary header and above the DisplayImage (e.g., “Retrieving Weather”).If OutputText is set to NULL, no text is displayed. PlaceAd If set toTRUE, an ad may be placed at this level. At the initial menu level, ifset to TRUE, the BannerText attribute is ignored. Otherwise, BannerTextis displayed as required. The ad is placed above the soft keys. The adtext either scrolls or is centered under control of the ad textattributes. Back When set to TRUE, the application 104 causes the Backkey to appear at the current screen on the left soft key. Info Theinformation text to be displayed if DisplayImage is set to “Info”. Noimage is displayed. DisableReply If set to TRUE, no message reply optionis present in the options menu.

SMS Send Action

Attribute Description ID A unique ID used internally by the application104. QueryType Indicates the type of the message (e.g., Weather). TheQueryType is displayed with the received message in the applicationinbox when the QueryType is determined through association. Also used todetermine which received message is to be displayed in some DisplayAction Types. QueryFormat Message format definition. MatchWords Areceived message may be associated with a sent message (i.e., the query)when each of the words in the MatchWords attribute are present in thereceived message. MisMatchWords A received Message may be associatedwith a sent message (i.e., the query) when none of the words in theMisMatchWords attribute are present in the received message. GoTo Thenext ID to be executed. Short Code Short code for this particular SMSSend Action. When specified, it overrides the global short code.CheckForNo Specifies whether the phone number in the response messagerequires detection. If set to TRUE, phone numbers (if any) arehighlighted for dialing. CheckForUrl Specifies whether the URL in theresponse message requires detection. If set to TRUE, the URLs (if any)are highlighted for clicking. Propagation In order to propagate datafrom received text messages, the application 104 needs to be able tofirst find the data, then assign the data to a variable (SCPrefix) forpropagation. This entry specifies a series one or more sets ofinformation to describe how to find the start of the data (StartText),how to find the end of the data (StopText) and which variable to assignthe characters to between StartText and StopText to (SCPrefix)MatchedText Specifies one or more sets of information for interactivitypurposes. The sets of information include 1) a character string for theapplication 104 to search for in the received text message and 2) a menuid the application should jump to if the user selects the matched textfrom the received SMS message. KeywordDefinition Specifies one or moresets of information for interactivity purposes. The sets of informationinclude 1) a character string for the application 104 to search for inthe received text message (StartText), 2) a character string for theapplication 104 to search for after StartText is found (StopText), 3) avariable name to assign the characters between StartText and StopTextto, and 4) a menu ID the application 104 should jump to if the userselects the matched text from the received SMS message. IgnoreTextSpecifies one or more sets of information for interactivity/propagationpurposes. The sets of information include 1) a character string for theapplication 104 to search for in the received text message (StartText),2) a character string for the application 104 to search for afterStartText is found (StopText). When StartText and StopText are found inthe SMS message, the characters between StartText and StopText areignored for the purposes of interactivity and propagation.

Call Action

Attribute Description ID A unique ID used internally by the application104. Got The next ID to be executed. Number Format The number to bedialed is generated from fixed and variable (based on user selectionsand entry values) components defined by Number Format.

URL Action

Attribute Description ID A unique ID used internally by the application104. Got The next ID to be executed. URL Format The URL to be invoked inthe browser is generated from fixed and variable (based on userselections and entry values) components defined by URL Format.

Operational Flow

FIG. 2 is a block diagram of an example operational flow for anapplication processing a profile. The actions described below, unlessindicated otherwise, are performed by the application 104 processing theselected profile running on a text messaging device 102 depicted inFIG. 1. For purposes of this example, the name attribute in the profileis set to “Google,” and the short code is set to “46645.” In the exampleof FIG. 2 described below, a series of interactions and actions aredescribed in order to provide an example of the operation of the systemsand methods described herein.

Typically, a user selects a profile to be executed via the UI generatedby the application. Additionally, the profile can be selected from aprofile list view display that causes the application to beginprocessing the selected profile. When the profile is executed by theapplication, a menu 204 (“Profile Home”) is generated and displayedaccording to menu definitions (e.g., attributes described above) in theprofile. In the example depicted in FIG. 2, the application generates anumber of menu items associated with Google services, including Stocks,Weather, GOOG411, Google Mobile Site, and Help, which are defined in theprofile.

When the user selects the Stocks menu item from menu 204, theapplication 104 generates another menu item list (menu 206) based on theattributes found in the profile. The menu 206 for Stocks includes aheader “Select Option” and menu items “By Symbol” and “By Name.” Theapplication responds to a By Symbol selection by the user with an entryaction 208 which allows the user to make an entry (provide a value). Theentry action 208 includes a header, which in this example has theinstruction “Enter Symbol.” The entry action 208 also includes an entryshortcut for a stock quote displayed as “MOT” which the user can selectas the entry. In an embodiment, this entry shortcut is memorized from aprevious transaction, where the user specified MOT for a stock quoterequest. Alternatively, the entry shortcut can be a default attribute inthe profile. The entry action 208 also includes a text field at thebottom containing the stock symbol “TXN” entered by the user. Inresponse to the user's entry, the application performs a Send SMS Action210, which instructs the text messaging device to send the text message“quote TXN” to the short code 46645 associated with Google via thenetwork and servers represented as 214. Alternatively, if the userselects the entry shortcut MOT in the entry action 208 instead ofentering a stock symbol, the application responds by generating a SendSMS Action including a request for a quote for MOT stock.

The application next generates a display action 212. The displayincludes the text “Retrieving TXN Price” (e.g., according to theOutputText attribute for the display action 212). This allows the userto know that the request is being processed.

When a response to the sent message is received, the applicationgenerates a display action 216 for an SMS message, which includes therequested stock quote information. As shown, the information may includeinteractive text such as a phone number (“800-123-4567”), an interactiveoption (enabled using the MatchText attribute) for more information(“Reply M for More”), an interactive option (enabled using theKeywordDefinition attribute) for information about air conditioning(“Hot? Reply AC”). Additionally, the application 104 may place anadvertisement within the display action 216, in this case for awell-known soft drink. The format for the information displayed in thedisplay action 216, including the interactive text options is specifiedby the attributes in the profile. The advertisement text and actionableoptions are provided as a dynamic ad via the control channel or as astatic ad from a static ad file resident with the application.

If the user selects the interactive text for the phone number800-123-4567, the application responds with a call action 218 for thatnumber, and uses the number to make the phone call. The application canalso use the systems and methods described in U.S. provisionalapplication Ser. No. 60/938,965, filed May 18, 2007 and titled SYSTEMAND METHOD FOR COMMUNICATING WITH INTERACTIVE SERVICE SYSTEMS, which ishereby incorporated by reference to process the phone call andsubsequent interaction more efficiently. Similarly, if the user selectsthe interactive text “Reply M” for more information, the applicationresponds with a send SMS action 220, and sends another SMS messagerequesting more information. Likewise, if the user selects theinteractive text “Reply AC” for information about air conditioning, theapplication responds with another send SMS action 222, and sends an SMSmessage requesting information about air conditioning. If the userselects the advertisement shown at the bottom of the display action 216,another menu 224 functioning as an advertisement landing page may bedisplayed, with an instructive header (Select Option) and options forthe user to request a coupon (Request Coupon) and an option for the userto opt into SMS marketing from the advertiser (Opt-in to SMS).

Referring again to the Profile Home menu 204, if the user selectsWeather, the application responds by generating a menu 226. The menu 226includes the header reading “Select Option,” and menu items “By ZIP” and“By City.” If the user selects By ZIP, the application generates anentry action 228 for By ZIP. As shown, the entry action 228 includes theheader reading “Enter ZIP” and an entry shortcut “92037.” The entryshortcut may, for example, be memorized from a previous request, or itmay be a default attribute in the profile. If the user selects the entryshortcut 92307 in the entry action 228, the application responds bygenerating a send SMS action including a request “w 92307” for weatherinformation at that ZIP code, with the short code 46645 associated withGoogle. The application then sends the message to the short code. Theentry action 228 also includes a text field at the bottom for the ZIPcode entered by the user. If instead of selecting the entry shortcut92307 the user enters the ZIP code 92085 in the field, the applicationresponds by generating a send SMS action with a request for weatherinformation at the 92805 ZIP code.

Referring again to the Profile Home menu 204, if the user selectsGOOG411, the application responds by generating a call action 232. Thecall action 232 completes a phone call to number “800-GOOG411”.Similarly, if the user selects Google Mobile Site from the menu 204, theapplication responds by generating a goto URL action 234. The goto URLaction 234 opens a browser and connect to the URL “http://m.Google.com”.If the user selects Help from the menu 204, the application generates inresponse the display action 236, which displays the header reading“Google Help,” and the additional in Display Action 236.

FIG. 3 is a functional block diagram of a text messaging application 104according to an embodiment of the invention. As shown, the application104 includes at least a formatting module 302, a sending module 304, aUI module 306, a shortcut module 308, a quality assurance module 310, aprocessing module 312, and an ad module 314. A more detailed explanationof the functions implemented by these modules has been provided above.

The formatting module 302 utilizes formatting attributes in the profile106 to ensure that data and information are appropriately formatted intext messages and on displays.

The sending module 304 prepares a message for sending, and facilitatessending the message over a communication channel used by the textmessaging device 102. In an embodiment, the message is a text messageand it is communicated over an SMS channel. Other communication channelsmay be used, including packet data channels and other types of textmessaging channels. In some cases information may be sent over a voicechannel (such as a circuit voice channel in a cellular system). In thecase of a voice channel, DTMF tones will typically be used forcommunication between the application and server. The sending module 302is operable to send messages to recipients specified by informationentered by the user, or specified by an entry shortcut in conjunctionwith the shortcut module 308 (described below).

The UI module 306 implements the UI components, including menus anddisplay actions, according to definitions in the profile 106. The UImodule interfaces directly with the API of the operating system of thedevice 102.

The shortcut module 308 carries out the functions to create shortcuts aswas described above. The shortcut module also implements propagation.

The quality assurance module 310 is used to implement error checking.

The reporting module 312 can implement the reporting and trackingfunctions described above including the watch dog function, operation ofthe control channel (including the queues) and the maintenance of theinbox.

The ad module 314 facilitates the display of ads, dynamic and static asdescribed above. As mentioned prior, the profile attributes indicatewhich of the screens of the profile are allowed to display anadvertisement. Furthermore, if the profile indicates that a static ad isto be displayed, the ad module selects an appropriate ad (based on theprofile category, e.g. banking) from the static advertisement filelocated on the application. If the profile indicates that a dynamic adis to be displayed, the ad module displays the received ad from thereceived text message. In both cases (static and dynamic) the ad modulemanages the displaying of the ad landing page as well as any actioningof the ads. In addition, the ad module manages the collection andsending of the ad statistics.

FIG. 4 is a block diagram of a text messaging server according to anembodiment of the invention.

The system profile creation module 402 on the text messaging server 110allows a profile designer, developer, text-messaging service or contentprovider, or end-user to create a profile 106 associated with aparticular text-messaging system 112. Creation of a profile 106 isperformed through a UI provided by the system profile creation module402, where the UI may include a set of forms, prompts, and entry fieldsused to receive the information to describe a particular text-messagingsystem 112. In an embodiment, the information includes send and receivemessage format information, one or more text-messaging system shortcodes, user entry prompts, information and constraints for errorchecking, and information pertaining to the desired UI, generally in theform of a menu tree.

Similar to the system profile creation module 402, the peer profilecreation module 404 on the text messaging server 110 allows a profiledesigner, developer, text-messaging service or content provider, orend-user to create a profile 106 associated with a particulartext-messaging peer 114.

The profile creation UI module 406 facilitates profile 106 creationthrough a UI provided by the system profile creation module 402 and/orby the peer profile creation module 404, where the UI may provide agraphical representation of the profile menu tree to facilitatedevelopment and maintenance of the profiles. The profile creation UImodule 406 may also provide a set of forms, prompts, and entry fieldsused to receive the information to define a profile to represent aparticular text messaging peer 114. In an embodiment, the informationreceived includes send and receive message format information, one ormore text-messaging system short codes, user entry prompts, informationand constraints for error checking, and information pertaining to thedesired UI, generally in the form of a menu tree.

The text message monitoring module 408 can monitoring receivedcommunications to determine which require further processing by othermodules. The text message modification module 410 can implement thefunctions relating to one to many sending, compression, decompressiondescribed above. The security module can implement the securityfunctions such as related to user profiles. The ad module 416 canimplement the ad related functions described above. The download moduleimplements the described download functions. Other functions describedabove can be implemented by the processing module 412.

Those of skill will appreciate that the various illustrative logicalblocks, modules, and algorithm steps described in connection with theembodiments disclosed herein can often be implemented as electronichardware, computer software, or combinations of both. To clearlyillustrate this interchangeability of hardware and software, variousillustrative components, blocks, modules, and steps have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular system and design constraints imposed on the overall system.Skilled persons can implement the described functionality in varyingways for each particular system, but such implementation decisionsshould not be interpreted as causing a departure from the scope of theinvention. In addition, the grouping of functions within a module, blockor step is for ease of description. Specific functions or steps can bemoved from one module or block without departing from the invention.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed with a general purpose processor, a digital signal processor(DSP), a text messaging system specific integrated circuit (ASIC), afield programmable gate array (FPGA) or other programmable logic device,discrete gate or transistor logic, discrete hardware components, or anycombination thereof designed to perform the functions described herein.A general-purpose processor can be a microprocessor, but in thealternative, the processor can be any processor, controller,microcontroller, or state machine. A processor can also be implementedas a combination of computing devices, for example, a combination of aDSP and a microprocessor, a plurality of microprocessors, one or moremicroprocessors in conjunction with a DSP core, or any other suchconfiguration.

The steps of a method or algorithm described in connection with theembodiments disclosed herein can be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.A software module can reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of storage medium. An exemplary storage mediumcan be coupled to the processor such that the processor can readinformation from, and write information to, the storage medium. In thealternative, the storage medium can be integral to the processor. Theprocessor and the storage medium can reside in an ASIC.

Various embodiments may also be implemented primarily in hardware using,for example, components such as text messaging specific integratedcircuits (“ASICs”), or field programmable gate arrays (“FPGAs”).Implementation of a hardware state machine capable of performing thefunctions described herein will also be apparent to those skilled in therelevant art. Various embodiments may also be implemented using acombination of both hardware and software.

The above description of the disclosed embodiments is provided to enableany person skilled in the art to make or use the invention. Variousmodifications to these embodiments will be readily apparent to thoseskilled in the art, and the generic principles described herein can beapplied to other embodiments without departing from the spirit or scopeof the invention. Thus, it is to be understood that the description anddrawings presented herein represent a presently preferred embodiment ofthe invention and are therefore representative of the subject matter,which is broadly contemplated by the present invention. It is furtherunderstood that the scope of the present invention fully encompassesother embodiments that may become obvious to those skilled in the artand that the scope of the present invention is accordingly limited bynothing other than the appended claims.

1. A method for operating a wireless mobile device to interact with aninteractive service system using a wireless communication channel, themethod comprising: receiving at the mobile device a user's selection ofa profile stored on the mobile device; the mobile device processing theselected profile, the profile associated with an interactive service,having user interface information associated with the interactiveservice, the user interface information including information to bedisplayed on the mobile device and having information specific to amessaging peer for enabling communications with the messaging peerthrough the interactive service via the mobile device; generating anddisplaying a user interface at the mobile device based on the userinterface information including displaying at least some of theinformation to be displayed from the profile, the user interfacesoliciting a user input comprising a communication for the messagingpeer; receiving the user input via the user interface at the mobiledevice; the mobile device processing the user input in accordance withthe profile to generate a message; sending the message to acommunication address associated with the profile, the message includingan identification of the messaging peer; receiving a message at themobile device from the interactive service; and after receiving themessage from the interactive service, updating the user interface at themobile device based upon the responsive message.